File Coverage

CFITSIO.xs
Criterion Covered Total %
statement 402 2528 15.9
branch 255 3204 7.9
condition n/a
subroutine n/a
pod n/a
total 657 5732 11.4


line stmt bran cond sub pod time code
1             #ifdef __cplusplus
2             extern "C" {
3             #endif
4             #include "EXTERN.h"
5             #include "perl.h"
6             #include "XSUB.h"
7             #ifdef __cplusplus
8             }
9             #endif
10              
11             #include "fitsio2.h"
12             #include "util.h"
13              
14             /* use the C std lib malloc/free */
15             #ifdef malloc
16             #undef malloc
17             #endif
18             #ifdef free
19             #undef free
20             #endif
21              
22             static int
23 0           not_here(s)
24             char *s;
25             {
26 0           croak("%s not implemented on this architecture", s);
27             return -1;
28             }
29              
30             static double
31 14           constant(name, arg)
32             char *name;
33             int arg;
34             {
35 14           errno = 0;
36 14           switch (*name) {
37             case 'A':
38 0 0         if (strEQ(name, "ANGLE_TOO_BIG"))
39             #ifdef ANGLE_TOO_BIG
40 0           return ANGLE_TOO_BIG;
41             #else
42             goto not_there;
43             #endif
44 0 0         if (strEQ(name, "ANY_HDU"))
45             #ifdef ANY_HDU
46 0           return ANY_HDU;
47             #else
48             goto not_there;
49             #endif
50 0 0         if (strEQ(name, "ARRAY_TOO_BIG"))
51             #ifdef ARRAY_TOO_BIG
52 0           return ARRAY_TOO_BIG;
53             #else
54             goto not_there;
55             #endif
56 0 0         if (strEQ(name, "ASCII_TBL"))
57             #ifdef ASCII_TBL
58 0           return ASCII_TBL;
59             #else
60             goto not_there;
61             #endif
62 0           break;
63             case 'B':
64 0 0         if (strEQ(name, "BAD_ATABLE_FORMAT"))
65             #ifdef BAD_ATABLE_FORMAT
66 0           return BAD_ATABLE_FORMAT;
67             #else
68             goto not_there;
69             #endif
70 0 0         if (strEQ(name, "BAD_BITPIX"))
71             #ifdef BAD_BITPIX
72 0           return BAD_BITPIX;
73             #else
74             goto not_there;
75             #endif
76 0 0         if (strEQ(name, "BAD_BTABLE_FORMAT"))
77             #ifdef BAD_BTABLE_FORMAT
78 0           return BAD_BTABLE_FORMAT;
79             #else
80             goto not_there;
81             #endif
82 0 0         if (strEQ(name, "BAD_C2D"))
83             #ifdef BAD_C2D
84 0           return BAD_C2D;
85             #else
86             goto not_there;
87             #endif
88 0 0         if (strEQ(name, "BAD_C2F"))
89             #ifdef BAD_C2F
90 0           return BAD_C2F;
91             #else
92             goto not_there;
93             #endif
94 0 0         if (strEQ(name, "BAD_C2I"))
95             #ifdef BAD_C2I
96 0           return BAD_C2I;
97             #else
98             goto not_there;
99             #endif
100 0 0         if (strEQ(name, "BAD_COL_NUM"))
101             #ifdef BAD_COL_NUM
102 0           return BAD_COL_NUM;
103             #else
104             goto not_there;
105             #endif
106 0 0         if (strEQ(name, "BAD_DATATYPE"))
107             #ifdef BAD_DATATYPE
108 0           return BAD_DATATYPE;
109             #else
110             goto not_there;
111             #endif
112 0 0         if (strEQ(name, "BAD_DATA_FILL"))
113             #ifdef BAD_DATA_FILL
114 0           return BAD_DATA_FILL;
115             #else
116             goto not_there;
117             #endif
118 0 0         if (strEQ(name, "BAD_DATE"))
119             #ifdef BAD_DATE
120 0           return BAD_DATE;
121             #else
122             goto not_there;
123             #endif
124 0 0         if (strEQ(name, "BAD_DECIM"))
125             #ifdef BAD_DECIM
126 0           return BAD_DECIM;
127             #else
128             goto not_there;
129             #endif
130 0 0         if (strEQ(name, "BAD_DIMEN"))
131             #ifdef BAD_DIMEN
132 0           return BAD_DIMEN;
133             #else
134             goto not_there;
135             #endif
136 0 0         if (strEQ(name, "BAD_DOUBLEKEY"))
137             #ifdef BAD_DOUBLEKEY
138 0           return BAD_DOUBLEKEY;
139             #else
140             goto not_there;
141             #endif
142 0 0         if (strEQ(name, "BAD_ELEM_NUM"))
143             #ifdef BAD_ELEM_NUM
144 0           return BAD_ELEM_NUM;
145             #else
146             goto not_there;
147             #endif
148 0 0         if (strEQ(name, "BAD_F2C"))
149             #ifdef BAD_F2C
150 0           return BAD_F2C;
151             #else
152             goto not_there;
153             #endif
154 0 0         if (strEQ(name, "BAD_FILEPTR"))
155             #ifdef BAD_FILEPTR
156 0           return BAD_FILEPTR;
157             #else
158             goto not_there;
159             #endif
160 0 0         if (strEQ(name, "BAD_FLOATKEY"))
161             #ifdef BAD_FLOATKEY
162 0           return BAD_FLOATKEY;
163             #else
164             goto not_there;
165             #endif
166 0 0         if (strEQ(name, "BAD_GCOUNT"))
167             #ifdef BAD_GCOUNT
168 0           return BAD_GCOUNT;
169             #else
170             goto not_there;
171             #endif
172 0 0         if (strEQ(name, "BAD_GROUP_ID"))
173             #ifdef BAD_GROUP_ID
174 0           return BAD_GROUP_ID;
175             #else
176             goto not_there;
177             #endif
178 0 0         if (strEQ(name, "BAD_HDU_NUM"))
179             #ifdef BAD_HDU_NUM
180 0           return BAD_HDU_NUM;
181             #else
182             goto not_there;
183             #endif
184 0 0         if (strEQ(name, "BAD_HEADER_FILL"))
185             #ifdef BAD_HEADER_FILL
186 0           return BAD_HEADER_FILL;
187             #else
188             goto not_there;
189             #endif
190 0 0         if (strEQ(name, "BAD_I2C"))
191             #ifdef BAD_I2C
192 0           return BAD_I2C;
193             #else
194             goto not_there;
195             #endif
196 0 0         if (strEQ(name, "BAD_INTKEY"))
197             #ifdef BAD_INTKEY
198 0           return BAD_INTKEY;
199             #else
200             goto not_there;
201             #endif
202 0 0         if (strEQ(name, "BAD_KEYCHAR"))
203             #ifdef BAD_KEYCHAR
204 0           return BAD_KEYCHAR;
205             #else
206             goto not_there;
207             #endif
208 0 0         if (strEQ(name, "BAD_LOGICALKEY"))
209             #ifdef BAD_LOGICALKEY
210 0           return BAD_LOGICALKEY;
211             #else
212             goto not_there;
213             #endif
214 0 0         if (strEQ(name, "BAD_NAXES"))
215             #ifdef BAD_NAXES
216 0           return BAD_NAXES;
217             #else
218             goto not_there;
219             #endif
220 0 0         if (strEQ(name, "BAD_NAXIS"))
221             #ifdef BAD_NAXIS
222 0           return BAD_NAXIS;
223             #else
224             goto not_there;
225             #endif
226 0 0         if (strEQ(name, "BAD_OPTION"))
227             #ifdef BAD_OPTION
228 0           return BAD_OPTION;
229             #else
230             goto not_there;
231             #endif
232 0 0         if (strEQ(name, "BAD_ORDER"))
233             #ifdef BAD_ORDER
234 0           return BAD_ORDER;
235             #else
236             goto not_there;
237             #endif
238 0 0         if (strEQ(name, "BAD_PCOUNT"))
239             #ifdef BAD_PCOUNT
240 0           return BAD_PCOUNT;
241             #else
242             goto not_there;
243             #endif
244 0 0         if (strEQ(name, "BAD_PIX_NUM"))
245             #ifdef BAD_PIX_NUM
246 0           return BAD_PIX_NUM;
247             #else
248             goto not_there;
249             #endif
250 0 0         if (strEQ(name, "BAD_ROW_NUM"))
251             #ifdef BAD_ROW_NUM
252 0           return BAD_ROW_NUM;
253             #else
254             goto not_there;
255             #endif
256 0 0         if (strEQ(name, "BAD_ROW_WIDTH"))
257             #ifdef BAD_ROW_WIDTH
258 0           return BAD_ROW_WIDTH;
259             #else
260             goto not_there;
261             #endif
262 0 0         if (strEQ(name, "BAD_SIMPLE"))
263             #ifdef BAD_SIMPLE
264 0           return BAD_SIMPLE;
265             #else
266             goto not_there;
267             #endif
268 0 0         if (strEQ(name, "BAD_TBCOL"))
269             #ifdef BAD_TBCOL
270 0           return BAD_TBCOL;
271             #else
272             goto not_there;
273             #endif
274 0 0         if (strEQ(name, "BAD_TDIM"))
275             #ifdef BAD_TDIM
276 0           return BAD_TDIM;
277             #else
278             goto not_there;
279             #endif
280 0 0         if (strEQ(name, "BAD_TFIELDS"))
281             #ifdef BAD_TFIELDS
282 0           return BAD_TFIELDS;
283             #else
284             goto not_there;
285             #endif
286 0 0         if (strEQ(name, "BAD_TFORM"))
287             #ifdef BAD_TFORM
288 0           return BAD_TFORM;
289             #else
290             goto not_there;
291             #endif
292 0 0         if (strEQ(name, "BAD_TFORM_DTYPE"))
293             #ifdef BAD_TFORM_DTYPE
294 0           return BAD_TFORM_DTYPE;
295             #else
296             goto not_there;
297             #endif
298 0 0         if (strEQ(name, "BAD_URL_PREFIX"))
299             #ifdef BAD_URL_PREFIX
300 0           return BAD_URL_PREFIX;
301             #else
302             goto not_there;
303             #endif
304 0 0         if (strEQ(name, "BAD_WCS_PROJ"))
305             #ifdef BAD_WCS_PROJ
306 0           return BAD_WCS_PROJ;
307             #else
308             goto not_there;
309             #endif
310 0 0         if (strEQ(name, "BAD_WCS_VAL"))
311             #ifdef BAD_WCS_VAL
312 0           return BAD_WCS_VAL;
313             #else
314             goto not_there;
315             #endif
316 0 0         if (strEQ(name, "BINARY_TBL"))
317             #ifdef BINARY_TBL
318 0           return BINARY_TBL;
319             #else
320             goto not_there;
321             #endif
322 0 0         if (strEQ(name, "BYTE_IMG"))
323             #ifdef BYTE_IMG
324 0           return BYTE_IMG;
325             #else
326             goto not_there;
327             #endif
328 0           break;
329             case 'C':
330 1 50         if (strEQ(name, "CASEINSEN"))
331             #ifdef CASEINSEN
332 0           return CASEINSEN;
333             #else
334             goto not_there;
335             #endif
336 1 50         if (strEQ(name, "CASESEN"))
337             #ifdef CASESEN
338 0           return CASESEN;
339             #else
340             goto not_there;
341             #endif
342 1 50         if (strEQ(name, "CFITSIO_MAJOR"))
343             #ifdef CFITSIO_MAJOR
344 0           return CFITSIO_MAJOR;
345             #else
346             goto not_there;
347             #endif
348 1 50         if (strEQ(name, "CFITSIO_MINOR"))
349             #ifdef CFITSIO_MINOR
350 0           return CFITSIO_MINOR;
351             #else
352             goto not_there;
353             #endif
354 1 50         if (strEQ(name, "COL_NOT_FOUND"))
355             #ifdef COL_NOT_FOUND
356 1           return COL_NOT_FOUND;
357             #else
358             goto not_there;
359             #endif
360 0 0         if (strEQ(name, "COL_NOT_UNIQUE"))
361             #ifdef COL_NOT_UNIQUE
362 0           return COL_NOT_UNIQUE;
363             #else
364             goto not_there;
365             #endif
366 0 0         if (strEQ(name, "COL_TOO_WIDE"))
367             #ifdef COL_TOO_WIDE
368 0           return COL_TOO_WIDE;
369             #else
370             goto not_there;
371             #endif
372 0           break;
373             case 'D':
374 0 0         if (strEQ(name, "DOUBLENULLVALUE"))
375             #ifdef DOUBLENULLVALUE
376 0           return DOUBLENULLVALUE;
377             #else
378             goto not_there;
379             #endif
380 0 0         if (strEQ(name, "DOUBLE_IMG"))
381             #ifdef DOUBLE_IMG
382 0           return DOUBLE_IMG;
383             #else
384             goto not_there;
385             #endif
386 0 0         if (strEQ(name, "DRIVER_INIT_FAILED"))
387             #ifdef DRIVER_INIT_FAILED
388 0           return DRIVER_INIT_FAILED;
389             #else
390             goto not_there;
391             #endif
392 0           break;
393             case 'E':
394 0 0         if (strEQ(name, "END_JUNK"))
395             #ifdef END_JUNK
396 0           return END_JUNK;
397             #else
398             goto not_there;
399             #endif
400 0 0         if (strEQ(name, "END_OF_FILE"))
401             #ifdef END_OF_FILE
402 0           return END_OF_FILE;
403             #else
404             goto not_there;
405             #endif
406 0           break;
407             case 'F':
408 0 0         if (strEQ(name, "FALSE"))
409             #ifdef FALSE
410 0           return FALSE;
411             #else
412             goto not_there;
413             #endif
414 0 0         if (strEQ(name, "FILE_NOT_CLOSED"))
415             #ifdef FILE_NOT_CLOSED
416 0           return FILE_NOT_CLOSED;
417             #else
418             goto not_there;
419             #endif
420 0 0         if (strEQ(name, "FILE_NOT_CREATED"))
421             #ifdef FILE_NOT_CREATED
422 0           return FILE_NOT_CREATED;
423             #else
424             goto not_there;
425             #endif
426 0 0         if (strEQ(name, "FILE_NOT_OPENED"))
427             #ifdef FILE_NOT_OPENED
428 0           return FILE_NOT_OPENED;
429             #else
430             goto not_there;
431             #endif
432 0 0         if (strEQ(name, "FLEN_CARD"))
433             #ifdef FLEN_CARD
434 0           return FLEN_CARD;
435             #else
436             goto not_there;
437             #endif
438 0 0         if (strEQ(name, "FLEN_COMMENT"))
439             #ifdef FLEN_COMMENT
440 0           return FLEN_COMMENT;
441             #else
442             goto not_there;
443             #endif
444 0 0         if (strEQ(name, "FLEN_ERRMSG"))
445             #ifdef FLEN_ERRMSG
446 0           return FLEN_ERRMSG;
447             #else
448             goto not_there;
449             #endif
450 0 0         if (strEQ(name, "FLEN_FILENAME"))
451             #ifdef FLEN_FILENAME
452 0           return FLEN_FILENAME;
453             #else
454             goto not_there;
455             #endif
456 0 0         if (strEQ(name, "FLEN_KEYWORD"))
457             #ifdef FLEN_KEYWORD
458 0           return FLEN_KEYWORD;
459             #else
460             goto not_there;
461             #endif
462 0 0         if (strEQ(name, "FLEN_STATUS"))
463             #ifdef FLEN_STATUS
464 0           return FLEN_STATUS;
465             #else
466             goto not_there;
467             #endif
468 0 0         if (strEQ(name, "FLEN_VALUE"))
469             #ifdef FLEN_VALUE
470 0           return FLEN_VALUE;
471             #else
472             goto not_there;
473             #endif
474 0 0         if (strEQ(name, "FLOATNULLVALUE"))
475             #ifdef FLOATNULLVALUE
476 0           return FLOATNULLVALUE;
477             #else
478             goto not_there;
479             #endif
480 0 0         if (strEQ(name, "FLOAT_IMG"))
481             #ifdef FLOAT_IMG
482 0           return FLOAT_IMG;
483             #else
484             goto not_there;
485             #endif
486 0           break;
487             case 'G':
488 0 0         if (strEQ(name, "GROUP_NOT_FOUND"))
489             #ifdef GROUP_NOT_FOUND
490 0           return GROUP_NOT_FOUND;
491             #else
492             goto not_there;
493             #endif
494 0 0         if (strEQ(name, "GT_ID_ALL"))
495             #ifdef GT_ID_ALL
496 0           return GT_ID_ALL;
497             #else
498             goto not_there;
499             #endif
500 0 0         if (strEQ(name, "GT_ID_ALL_URI"))
501             #ifdef GT_ID_ALL_URI
502 0           return GT_ID_ALL_URI;
503             #else
504             goto not_there;
505             #endif
506 0 0         if (strEQ(name, "GT_ID_POS"))
507             #ifdef GT_ID_POS
508 0           return GT_ID_POS;
509             #else
510             goto not_there;
511             #endif
512 0 0         if (strEQ(name, "GT_ID_POS_URI"))
513             #ifdef GT_ID_POS_URI
514 0           return GT_ID_POS_URI;
515             #else
516             goto not_there;
517             #endif
518 0 0         if (strEQ(name, "GT_ID_REF"))
519             #ifdef GT_ID_REF
520 0           return GT_ID_REF;
521             #else
522             goto not_there;
523             #endif
524 0 0         if (strEQ(name, "GT_ID_REF_URI"))
525             #ifdef GT_ID_REF_URI
526 0           return GT_ID_REF_URI;
527             #else
528             goto not_there;
529             #endif
530 0 0         if (strEQ(name, "GZIP_1"))
531             #ifdef GZIP_1
532 0           return GZIP_1;
533             #else
534             goto not_there;
535             #endif
536 0           break;
537             case 'H':
538 0 0         if (strEQ(name, "HDU_ALREADY_MEMBER"))
539             #ifdef HDU_ALREADY_MEMBER
540 0           return HDU_ALREADY_MEMBER;
541             #else
542             goto not_there;
543             #endif
544 0 0         if (strEQ(name, "HDU_ALREADY_TRACKED"))
545             #ifdef HDU_ALREADY_TRACKED
546 0           return HDU_ALREADY_TRACKED;
547             #else
548             goto not_there;
549             #endif
550 0 0         if (strEQ(name, "HEADER_NOT_EMPTY"))
551             #ifdef HEADER_NOT_EMPTY
552 0           return HEADER_NOT_EMPTY;
553             #else
554             goto not_there;
555             #endif
556 0           break;
557             case 'I':
558 0 0         if (strEQ(name, "IDENTICAL_POINTERS"))
559             #ifdef IDENTICAL_POINTERS
560 0           return IDENTICAL_POINTERS;
561             #else
562             goto not_there;
563             #endif
564 0 0         if (strEQ(name, "IMAGE_HDU"))
565             #ifdef IMAGE_HDU
566 0           return IMAGE_HDU;
567             #else
568             goto not_there;
569             #endif
570 0 0         if (strEQ(name, "InputCol"))
571             #ifdef InputCol
572 0           return InputCol;
573             #else
574             goto not_there;
575             #endif
576 0 0         if (strEQ(name, "InputOutputCol"))
577             #ifdef InputOutputCol
578 0           return InputOutputCol;
579             #else
580             goto not_there;
581             #endif
582 0           break;
583             case 'J':
584 0           break;
585             case 'K':
586 0 0         if (strEQ(name, "KEY_NO_EXIST"))
587             #ifdef KEY_NO_EXIST
588 0           return KEY_NO_EXIST;
589             #else
590             goto not_there;
591             #endif
592 0 0         if (strEQ(name, "KEY_OUT_BOUNDS"))
593             #ifdef KEY_OUT_BOUNDS
594 0           return KEY_OUT_BOUNDS;
595             #else
596             goto not_there;
597             #endif
598 0           break;
599             case 'L':
600 0 0         if (strEQ(name, "LONG_IMG"))
601             #ifdef LONG_IMG
602 0           return LONG_IMG;
603             #else
604             goto not_there;
605             #endif
606 0 0         if (strEQ(name, "LONGLONG_IMG"))
607             #ifdef LONGLONG_IMG
608 0           return LONGLONG_IMG;
609             #else
610             goto not_there;
611             #endif
612 0           break;
613             case 'M':
614 0 0         if (strEQ(name, "MAXHDU"))
615             #ifdef MAXHDU
616             return MAXHDU;
617             #else
618 0           goto not_there;
619             #endif
620 0 0         if (strEQ(name, "MEMBER_NOT_FOUND"))
621             #ifdef MEMBER_NOT_FOUND
622 0           return MEMBER_NOT_FOUND;
623             #else
624             goto not_there;
625             #endif
626 0 0         if (strEQ(name, "MEMORY_ALLOCATION"))
627             #ifdef MEMORY_ALLOCATION
628 0           return MEMORY_ALLOCATION;
629             #else
630             goto not_there;
631             #endif
632 0           break;
633             case 'N':
634 1 50         if (strEQ(name, "NEG_AXIS"))
635             #ifdef NEG_AXIS
636 0           return NEG_AXIS;
637             #else
638             goto not_there;
639             #endif
640 1 50         if (strEQ(name, "NEG_BYTES"))
641             #ifdef NEG_BYTES
642 0           return NEG_BYTES;
643             #else
644             goto not_there;
645             #endif
646 1 50         if (strEQ(name, "NEG_FILE_POS"))
647             #ifdef NEG_FILE_POS
648 0           return NEG_FILE_POS;
649             #else
650             goto not_there;
651             #endif
652 1 50         if (strEQ(name, "NEG_ROWS"))
653             #ifdef NEG_ROWS
654 0           return NEG_ROWS;
655             #else
656             goto not_there;
657             #endif
658 1 50         if (strEQ(name, "NEG_WIDTH"))
659             #ifdef NEG_WIDTH
660 0           return NEG_WIDTH;
661             #else
662             goto not_there;
663             #endif
664 1 50         if (strEQ(name, "NOT_ASCII_COL"))
665             #ifdef NOT_ASCII_COL
666 0           return NOT_ASCII_COL;
667             #else
668             goto not_there;
669             #endif
670 1 50         if (strEQ(name, "NOT_ATABLE"))
671             #ifdef NOT_ATABLE
672 0           return NOT_ATABLE;
673             #else
674             goto not_there;
675             #endif
676 1 50         if (strEQ(name, "NOT_BTABLE"))
677             #ifdef NOT_BTABLE
678 0           return NOT_BTABLE;
679             #else
680             goto not_there;
681             #endif
682 1 50         if (strEQ(name, "NOT_GROUP_TABLE"))
683             #ifdef NOT_GROUP_TABLE
684 0           return NOT_GROUP_TABLE;
685             #else
686             goto not_there;
687             #endif
688 1 50         if (strEQ(name, "NOT_IMAGE"))
689             #ifdef NOT_IMAGE
690 0           return NOT_IMAGE;
691             #else
692             goto not_there;
693             #endif
694 1 50         if (strEQ(name, "NOT_LOGICAL_COL"))
695             #ifdef NOT_LOGICAL_COL
696 0           return NOT_LOGICAL_COL;
697             #else
698             goto not_there;
699             #endif
700 1 50         if (strEQ(name, "NOT_POS_INT"))
701             #ifdef NOT_POS_INT
702 0           return NOT_POS_INT;
703             #else
704             goto not_there;
705             #endif
706 1 50         if (strEQ(name, "NOT_TABLE"))
707             #ifdef NOT_TABLE
708 0           return NOT_TABLE;
709             #else
710             goto not_there;
711             #endif
712 1 50         if (strEQ(name, "NOT_VARI_LEN"))
713             #ifdef NOT_VARI_LEN
714 0           return NOT_VARI_LEN;
715             #else
716             goto not_there;
717             #endif
718 1 50         if (strEQ(name, "NO_BITPIX"))
719             #ifdef NO_BITPIX
720 0           return NO_BITPIX;
721             #else
722             goto not_there;
723             #endif
724 1 50         if (strEQ(name, "NO_END"))
725             #ifdef NO_END
726 0           return NO_END;
727             #else
728             goto not_there;
729             #endif
730 1 50         if (strEQ(name, "NO_GCOUNT"))
731             #ifdef NO_GCOUNT
732 0           return NO_GCOUNT;
733             #else
734             goto not_there;
735             #endif
736 1 50         if (strEQ(name, "NO_MATCHING_DRIVER"))
737             #ifdef NO_MATCHING_DRIVER
738 0           return NO_MATCHING_DRIVER;
739             #else
740             goto not_there;
741             #endif
742 1 50         if (strEQ(name, "NO_NAXES"))
743             #ifdef NO_NAXES
744 0           return NO_NAXES;
745             #else
746             goto not_there;
747             #endif
748 1 50         if (strEQ(name, "NO_NAXIS"))
749             #ifdef NO_NAXIS
750 0           return NO_NAXIS;
751             #else
752             goto not_there;
753             #endif
754 1 50         if (strEQ(name, "NO_NULL"))
755             #ifdef NO_NULL
756 0           return NO_NULL;
757             #else
758             goto not_there;
759             #endif
760 1 50         if (strEQ(name, "NO_PCOUNT"))
761             #ifdef NO_PCOUNT
762 0           return NO_PCOUNT;
763             #else
764             goto not_there;
765             #endif
766 1 50         if (strEQ(name, "NO_QUOTE"))
767             #ifdef NO_QUOTE
768 0           return NO_QUOTE;
769             #else
770             goto not_there;
771             #endif
772 1 50         if (strEQ(name, "NO_SIMPLE"))
773             #ifdef NO_SIMPLE
774 0           return NO_SIMPLE;
775             #else
776             goto not_there;
777             #endif
778 1 50         if (strEQ(name, "NO_TBCOL"))
779             #ifdef NO_TBCOL
780 0           return NO_TBCOL;
781             #else
782             goto not_there;
783             #endif
784 1 50         if (strEQ(name, "NO_TFIELDS"))
785             #ifdef NO_TFIELDS
786 0           return NO_TFIELDS;
787             #else
788             goto not_there;
789             #endif
790 1 50         if (strEQ(name, "NO_TFORM"))
791             #ifdef NO_TFORM
792 0           return NO_TFORM;
793             #else
794             goto not_there;
795             #endif
796 1 50         if (strEQ(name, "NO_WCS_KEY"))
797             #ifdef NO_WCS_KEY
798 0           return NO_WCS_KEY;
799             #else
800             goto not_there;
801             #endif
802 1 50         if (strEQ(name, "NO_XTENSION"))
803             #ifdef NO_XTENSION
804 0           return NO_XTENSION;
805             #else
806             goto not_there;
807             #endif
808 1 50         if (strEQ(name, "NULL_INPUT_PTR"))
809             #ifdef NULL_INPUT_PTR
810 0           return NULL_INPUT_PTR;
811             #else
812             goto not_there;
813             #endif
814 1 50         if (strEQ(name, "NUM_OVERFLOW"))
815             #ifdef NUM_OVERFLOW
816 1           return NUM_OVERFLOW;
817             #else
818             goto not_there;
819             #endif
820 0           break;
821             case 'O':
822 0 0         if (strEQ(name, "OPT_CMT_MBR"))
823             #ifdef OPT_CMT_MBR
824 0           return OPT_CMT_MBR;
825             #else
826             goto not_there;
827             #endif
828 0 0         if (strEQ(name, "OPT_CMT_MBR_DEL"))
829             #ifdef OPT_CMT_MBR_DEL
830 0           return OPT_CMT_MBR_DEL;
831             #else
832             goto not_there;
833             #endif
834 0 0         if (strEQ(name, "OPT_GCP_ALL"))
835             #ifdef OPT_GCP_ALL
836 0           return OPT_GCP_ALL;
837             #else
838             goto not_there;
839             #endif
840 0 0         if (strEQ(name, "OPT_GCP_GPT"))
841             #ifdef OPT_GCP_GPT
842 0           return OPT_GCP_GPT;
843             #else
844             goto not_there;
845             #endif
846 0 0         if (strEQ(name, "OPT_GCP_MBR"))
847             #ifdef OPT_GCP_MBR
848 0           return OPT_GCP_MBR;
849             #else
850             goto not_there;
851             #endif
852 0 0         if (strEQ(name, "OPT_MCP_ADD"))
853             #ifdef OPT_MCP_ADD
854 0           return OPT_MCP_ADD;
855             #else
856             goto not_there;
857             #endif
858 0 0         if (strEQ(name, "OPT_MCP_MOV"))
859             #ifdef OPT_MCP_MOV
860 0           return OPT_MCP_MOV;
861             #else
862             goto not_there;
863             #endif
864 0 0         if (strEQ(name, "OPT_MCP_NADD"))
865             #ifdef OPT_MCP_NADD
866 0           return OPT_MCP_NADD;
867             #else
868             goto not_there;
869             #endif
870 0 0         if (strEQ(name, "OPT_MCP_REPL"))
871             #ifdef OPT_MCP_REPL
872 0           return OPT_MCP_REPL;
873             #else
874             goto not_there;
875             #endif
876 0 0         if (strEQ(name, "OPT_MRG_COPY"))
877             #ifdef OPT_MRG_COPY
878 0           return OPT_MRG_COPY;
879             #else
880             goto not_there;
881             #endif
882 0 0         if (strEQ(name, "OPT_MRG_MOV"))
883             #ifdef OPT_MRG_MOV
884 0           return OPT_MRG_MOV;
885             #else
886             goto not_there;
887             #endif
888 0 0         if (strEQ(name, "OPT_RM_ALL"))
889             #ifdef OPT_RM_ALL
890 0           return OPT_RM_ALL;
891             #else
892             goto not_there;
893             #endif
894 0 0         if (strEQ(name, "OPT_RM_ENTRY"))
895             #ifdef OPT_RM_ENTRY
896 0           return OPT_RM_ENTRY;
897             #else
898             goto not_there;
899             #endif
900 0 0         if (strEQ(name, "OPT_RM_GPT"))
901             #ifdef OPT_RM_GPT
902 0           return OPT_RM_GPT;
903             #else
904             goto not_there;
905             #endif
906 0 0         if (strEQ(name, "OPT_RM_MBR"))
907             #ifdef OPT_RM_MBR
908 0           return OPT_RM_MBR;
909             #else
910             goto not_there;
911             #endif
912 0 0         if (strEQ(name, "OVERFLOW_ERR"))
913             #ifdef OVERFLOW_ERR
914 0           return OVERFLOW_ERR;
915             #else
916             goto not_there;
917             #endif
918 0 0         if (strEQ(name, "OutputCol"))
919             #ifdef OutputCol
920 0           return OutputCol;
921             #else
922             goto not_there;
923             #endif
924 0           break;
925             case 'P':
926 0 0         if (strEQ(name, "PARSE_BAD_COL"))
927             #ifdef PARSE_BAD_COL
928 0           return PARSE_BAD_COL;
929             #else
930             goto not_there;
931             #endif
932 0 0         if (strEQ(name, "PARSE_BAD_OUTPUT"))
933             #ifdef PARSE_BAD_OUTPUT
934 0           return PARSE_BAD_OUTPUT;
935             #else
936             goto not_there;
937             #endif
938 0 0         if (strEQ(name, "PARSE_BAD_TYPE"))
939             #ifdef PARSE_BAD_TYPE
940 0           return PARSE_BAD_TYPE;
941             #else
942             goto not_there;
943             #endif
944 0 0         if (strEQ(name, "PARSE_LRG_VECTOR"))
945             #ifdef PARSE_LRG_VECTOR
946 0           return PARSE_LRG_VECTOR;
947             #else
948             goto not_there;
949             #endif
950 0 0         if (strEQ(name, "PARSE_NO_OUTPUT"))
951             #ifdef PARSE_NO_OUTPUT
952 0           return PARSE_NO_OUTPUT;
953             #else
954             goto not_there;
955             #endif
956 0 0         if (strEQ(name, "PARSE_SYNTAX_ERR"))
957             #ifdef PARSE_SYNTAX_ERR
958 0           return PARSE_SYNTAX_ERR;
959             #else
960             goto not_there;
961             #endif
962 0 0         if (strEQ(name, "PLIO_1"))
963             #ifdef PLIO_1
964 0           return PLIO_1;
965             #else
966             goto not_there;
967             #endif
968 0           break;
969             case 'Q':
970 0           break;
971             case 'R':
972 3 100         if (strEQ(name, "READONLY"))
973             #ifdef READONLY
974 1           return READONLY;
975             #else
976             goto not_there;
977             #endif
978 2 50         if (strEQ(name, "READONLY_FILE"))
979             #ifdef READONLY_FILE
980 0           return READONLY_FILE;
981             #else
982             goto not_there;
983             #endif
984 2 50         if (strEQ(name, "READWRITE"))
985             #ifdef READWRITE
986 2           return READWRITE;
987             #else
988             goto not_there;
989             #endif
990 0 0         if (strEQ(name, "READ_ERROR"))
991             #ifdef READ_ERROR
992 0           return READ_ERROR;
993             #else
994             goto not_there;
995             #endif
996 0 0         if (strEQ(name, "RICE_1"))
997             #ifdef RICE_1
998 0           return RICE_1;
999             #else
1000             goto not_there;
1001             #endif
1002 0           break;
1003             case 'S':
1004 0 0         if (strEQ(name, "SAME_FILE"))
1005             #ifdef SAME_FILE
1006 0           return SAME_FILE;
1007             #else
1008             goto not_there;
1009             #endif
1010 0 0         if (strEQ(name, "SEEK_ERROR"))
1011             #ifdef SEEK_ERROR
1012 0           return SEEK_ERROR;
1013             #else
1014             goto not_there;
1015             #endif
1016 0 0         if (strEQ(name, "SHORT_IMG"))
1017             #ifdef SHORT_IMG
1018 0           return SHORT_IMG;
1019             #else
1020             goto not_there;
1021             #endif
1022 0           break;
1023             case 'T':
1024 9 50         if (strEQ(name, "TBIT"))
1025             #ifdef TBIT
1026 0           return TBIT;
1027             #else
1028             goto not_there;
1029             #endif
1030 9 100         if (strEQ(name, "TBYTE"))
1031             #ifdef TBYTE
1032 1           return TBYTE;
1033             #else
1034             goto not_there;
1035             #endif
1036 8 50         if (strEQ(name, "TSBYTE"))
1037             #ifdef TSBYTE
1038 0           return TSBYTE;
1039             #else
1040             goto not_there;
1041             #endif
1042 8 50         if (strEQ(name, "TCOMPLEX"))
1043             #ifdef TCOMPLEX
1044 0           return TCOMPLEX;
1045             #else
1046             goto not_there;
1047             #endif
1048 8 50         if (strEQ(name, "TDBLCOMPLEX"))
1049             #ifdef TDBLCOMPLEX
1050 0           return TDBLCOMPLEX;
1051             #else
1052             goto not_there;
1053             #endif
1054 8 100         if (strEQ(name, "TDOUBLE"))
1055             #ifdef TDOUBLE
1056 1           return TDOUBLE;
1057             #else
1058             goto not_there;
1059             #endif
1060 7 100         if (strEQ(name, "TFLOAT"))
1061             #ifdef TFLOAT
1062 1           return TFLOAT;
1063             #else
1064             goto not_there;
1065             #endif
1066 6 100         if (strEQ(name, "TINT"))
1067             #ifdef TINT
1068 1           return TINT;
1069             #else
1070             goto not_there;
1071             #endif
1072 5 100         if (strEQ(name, "TLOGICAL"))
1073             #ifdef TLOGICAL
1074 1           return TLOGICAL;
1075             #else
1076             goto not_there;
1077             #endif
1078 4 100         if (strEQ(name, "TLONG"))
1079             #ifdef TLONG
1080 1           return TLONG;
1081             #else
1082             goto not_there;
1083             #endif
1084 3 50         if (strEQ(name, "TLONGLONG"))
1085             #ifdef TLONGLONG
1086 0           return TLONGLONG;
1087             #else
1088             goto not_there;
1089             #endif
1090 3 50         if (strEQ(name, "TOO_MANY_DRIVERS"))
1091             #ifdef TOO_MANY_DRIVERS
1092 0           return TOO_MANY_DRIVERS;
1093             #else
1094             goto not_there;
1095             #endif
1096 3 50         if (strEQ(name, "TOO_MANY_FILES"))
1097             #ifdef TOO_MANY_FILES
1098 0           return TOO_MANY_FILES;
1099             #else
1100             goto not_there;
1101             #endif
1102 3 50         if (strEQ(name, "TOO_MANY_HDUS_TRACKED"))
1103             #ifdef TOO_MANY_HDUS_TRACKED
1104 0           return TOO_MANY_HDUS_TRACKED;
1105             #else
1106             goto not_there;
1107             #endif
1108 3 100         if (strEQ(name, "TRUE"))
1109             #ifdef TRUE
1110 1           return TRUE;
1111             #else
1112             goto not_there;
1113             #endif
1114 2 100         if (strEQ(name, "TSHORT"))
1115             #ifdef TSHORT
1116 1           return TSHORT;
1117             #else
1118             goto not_there;
1119             #endif
1120 1 50         if (strEQ(name, "TSTRING"))
1121             #ifdef TSTRING
1122 1           return TSTRING;
1123             #else
1124             goto not_there;
1125             #endif
1126 0 0         if (strEQ(name, "TUINT"))
1127             #ifdef TUINT
1128 0           return TUINT;
1129             #else
1130             goto not_there;
1131             #endif
1132 0 0         if (strEQ(name, "TULONG"))
1133             #ifdef TULONG
1134 0           return TULONG;
1135             #else
1136             goto not_there;
1137             #endif
1138 0 0         if (strEQ(name, "TUSHORT"))
1139             #ifdef TUSHORT
1140 0           return TUSHORT;
1141             #else
1142             goto not_there;
1143             #endif
1144 0 0         if (strEQ(name, "TYP_STRUC_KEY"))
1145             #ifdef TYP_STRUC_KEY
1146 0           return TYP_STRUC_KEY;
1147             #else
1148             goto not_there;
1149             #endif
1150 0 0         if (strEQ(name, "TYP_CMPRS_KEY"))
1151             #ifdef TYP_CMPRS_KEY
1152 0           return TYP_CMPRS_KEY;
1153             #else
1154             goto not_there;
1155             #endif
1156 0 0         if (strEQ(name, "TYP_SCAL_KEY"))
1157             #ifdef TYP_SCAL_KEY
1158 0           return TYP_SCAL_KEY;
1159             #else
1160             goto not_there;
1161             #endif
1162 0 0         if (strEQ(name, "TYP_NULL_KEY"))
1163             #ifdef TYP_NULL_KEY
1164 0           return TYP_NULL_KEY;
1165             #else
1166             goto not_there;
1167             #endif
1168 0 0         if (strEQ(name, "TYP_DIM_KEY"))
1169             #ifdef TYP_DIM_KEY
1170 0           return TYP_DIM_KEY;
1171             #else
1172             goto not_there;
1173             #endif
1174 0 0         if (strEQ(name, "TYP_RANG_KEY"))
1175             #ifdef TYP_RANG_KEY
1176 0           return TYP_RANG_KEY;
1177             #else
1178             goto not_there;
1179             #endif
1180 0 0         if (strEQ(name, "TYP_UNIT_KEY"))
1181             #ifdef TYP_UNIT_KEY
1182 0           return TYP_UNIT_KEY;
1183             #else
1184             goto not_there;
1185             #endif
1186 0 0         if (strEQ(name, "TYP_DISP_KEY"))
1187             #ifdef TYP_DISP_KEY
1188 0           return TYP_DISP_KEY;
1189             #else
1190             goto not_there;
1191             #endif
1192 0 0         if (strEQ(name, "TYP_HDUID_KEY"))
1193             #ifdef TYP_HDUID_KEY
1194 0           return TYP_HDUID_KEY;
1195             #else
1196             goto not_there;
1197             #endif
1198 0 0         if (strEQ(name, "TYP_CKSUM_KEY"))
1199             #ifdef TYP_CKSUM_KEY
1200 0           return TYP_CKSUM_KEY;
1201             #else
1202             goto not_there;
1203             #endif
1204 0 0         if (strEQ(name, "TYP_WCS_KEY"))
1205             #ifdef TYP_WCS_KEY
1206 0           return TYP_WCS_KEY;
1207             #else
1208             goto not_there;
1209             #endif
1210 0 0         if (strEQ(name, "TYP_REFSYS_KEY"))
1211             #ifdef TYP_REFSYS_KEY
1212 0           return TYP_REFSYS_KEY;
1213             #else
1214             goto not_there;
1215             #endif
1216 0 0         if (strEQ(name, "TYP_COMM_KEY"))
1217             #ifdef TYP_COMM_KEY
1218 0           return TYP_COMM_KEY;
1219             #else
1220             goto not_there;
1221             #endif
1222 0 0         if (strEQ(name, "TYP_CONT_KEY"))
1223             #ifdef TYP_CONT_KEY
1224 0           return TYP_CONT_KEY;
1225             #else
1226             goto not_there;
1227             #endif
1228 0 0         if (strEQ(name, "TYP_USER_KEY"))
1229             #ifdef TYP_USER_KEY
1230 0           return TYP_USER_KEY;
1231             #else
1232             goto not_there;
1233             #endif
1234 0           break;
1235             case 'U':
1236 0 0         if (strEQ(name, "ULONG_IMG"))
1237             #ifdef ULONG_IMG
1238 0           return ULONG_IMG;
1239             #else
1240             goto not_there;
1241             #endif
1242 0 0         if (strEQ(name, "UNKNOWN_EXT"))
1243             #ifdef UNKNOWN_EXT
1244 0           return UNKNOWN_EXT;
1245             #else
1246             goto not_there;
1247             #endif
1248 0 0         if (strEQ(name, "UNKNOWN_REC"))
1249             #ifdef UNKNOWN_REC
1250 0           return UNKNOWN_REC;
1251             #else
1252             goto not_there;
1253             #endif
1254 0 0         if (strEQ(name, "URL_PARSE_ERROR"))
1255             #ifdef URL_PARSE_ERROR
1256 0           return URL_PARSE_ERROR;
1257             #else
1258             goto not_there;
1259             #endif
1260 0 0         if (strEQ(name, "USE_MEM_BUFF"))
1261             #ifdef USE_MEM_BUFF
1262 0           return USE_MEM_BUFF;
1263             #else
1264             goto not_there;
1265             #endif
1266 0 0         if (strEQ(name, "USHORT_IMG"))
1267             #ifdef USHORT_IMG
1268 0           return USHORT_IMG;
1269             #else
1270             goto not_there;
1271             #endif
1272 0           break;
1273             case 'V':
1274 0 0         if (strEQ(name, "VALIDSTRUC"))
1275             #ifdef VALIDSTRUC
1276 0           return VALIDSTRUC;
1277             #else
1278             goto not_there;
1279             #endif
1280 0 0         if (strEQ(name, "VALUE_UNDEFINED"))
1281             #ifdef VALUE_UNDEFINED
1282 0           return VALUE_UNDEFINED;
1283             #else
1284             goto not_there;
1285             #endif
1286 0           break;
1287             case 'W':
1288 0 0         if (strEQ(name, "WCS_ERROR"))
1289             #ifdef WCS_ERROR
1290 0           return WCS_ERROR;
1291             #else
1292             goto not_there;
1293             #endif
1294 0 0         if (strEQ(name, "WRITE_ERROR"))
1295             #ifdef WRITE_ERROR
1296 0           return WRITE_ERROR;
1297             #else
1298             goto not_there;
1299             #endif
1300 0           break;
1301             case 'X':
1302 0           break;
1303             case 'Y':
1304 0           break;
1305             case 'Z':
1306 0 0         if (strEQ(name, "ZERO_SCALE"))
1307             #ifdef ZERO_SCALE
1308 0           return ZERO_SCALE;
1309             #else
1310             goto not_there;
1311             #endif
1312 0           break;
1313             }
1314 0           errno = EINVAL;
1315 0           return 0;
1316              
1317             not_there:
1318 0           errno = ENOENT;
1319 0           return 0;
1320             }
1321              
1322             #define NewFitsFile(fptr) \
1323             do \
1324             { New(0, fptr, 1, FitsFile);\
1325             fptr->perlyunpacking = -1;\
1326             fptr->is_open = 1;\
1327             } while(0)
1328              
1329             #define AbortFitsFile(fptr) \
1330             do \
1331             { Safefree(fptr);\
1332             fptr = 0;\
1333             } while(0)
1334              
1335             MODULE = Astro::FITS::CFITSIO PACKAGE = Astro::FITS::CFITSIO
1336              
1337             PROTOTYPES: DISABLE
1338              
1339             double
1340             constant(name,arg)
1341             char * name
1342             int arg
1343              
1344             int
1345             sizeof_datatype(type)
1346             int type
1347              
1348             int
1349             PerlyUnpacking(...)
1350             CODE:
1351 7 100         RETVAL = PerlyUnpacking( items > 0 ? SvIV((ST(0))) : -1 );
    50          
1352             OUTPUT:
1353             RETVAL
1354              
1355             int
1356             perlyunpacking(fptr, ...)
1357             FitsFile * fptr
1358             ALIAS:
1359             fitsfilePtr::perlyunpacking = 1
1360             CODE:
1361 7 100         if( items > 1 )
1362 3 50         fptr->perlyunpacking = SvIV((ST(1)));
1363 7           RETVAL = fptr->perlyunpacking;
1364             OUTPUT:
1365             RETVAL
1366              
1367             int
1368             _is_open(fptr, ...)
1369             FitsFile * fptr
1370             ALIAS:
1371             fitsfilePtr::_is_open = 1
1372             CODE:
1373 3 50         if( items > 1 )
1374 0 0         fptr->is_open = SvIV((ST(1)));
1375 3           RETVAL = fptr->is_open;
1376             OUTPUT:
1377             RETVAL
1378              
1379             int
1380             PERLYUNPACKING(fptr)
1381             FitsFile * fptr
1382             ALIAS:
1383             fitsfilePtr::PERLYUNPACKING = 1
1384             CODE:
1385 4 100         RETVAL = PERLYUNPACKING(fptr->perlyunpacking);
1386             OUTPUT:
1387             RETVAL
1388              
1389             void
1390             DESTROY(fptr)
1391             FitsFile * fptr
1392             ALIAS:
1393             fitsfilePtr::DESTROY = 1
1394             PREINIT:
1395 20           int status = 0;
1396             CODE:
1397 20 100         if ( fptr->is_open )
1398             {
1399 6           ffclos( fptr->fptr, &status );
1400 6 100         if ( status )
1401             {
1402 1           char * err_text = get_mortalspace(FLEN_ERRMSG,TBYTE);
1403 1           ffgerr(status,err_text);
1404 1           Safefree(fptr);
1405 1           croak( "fitsfilePtr::DESTROY: error closing FITS file: %s",
1406             err_text );
1407             }
1408             }
1409 19           Safefree(fptr);
1410              
1411             int
1412             ffgtam(gfptr,mfptr,hdupos,status)
1413             fitsfile * gfptr
1414             fitsfile * mfptr = NO_INIT
1415             int hdupos
1416             int status
1417             ALIAS:
1418             Astro::FITS::CFITSIO::fits_add_group_member = 1
1419             fitsfilePtr::add_group_member = 2
1420             CODE:
1421             /*
1422             * (mfptr == NULL) => member HDU is identified by hdupos
1423             */
1424 0 0         if (ST(1)==&PL_sv_undef)
1425 0           mfptr = NULL;
1426 0 0         else if (sv_derived_from(ST(1),"fitsfilePtr"))
1427 0 0         mfptr = fitsfileSV(ST(1));
1428             else
1429 0           croak("mfptr is not of type fitsfilePtr");
1430 0           RETVAL = ffgtam(gfptr,mfptr,hdupos,&status);
1431             OUTPUT:
1432             status
1433             RETVAL
1434              
1435             int
1436             ffasfm(tform,typecode,width,decimals,status)
1437             char * tform
1438             int typecode = NO_INIT
1439             long width = NO_INIT
1440             int decimals = NO_INIT
1441             int status
1442             ALIAS:
1443             Astro::FITS::CFITSIO::fits_ascii_tform = 1
1444             CODE:
1445 0           RETVAL = ffasfm(tform,&typecode,&width,&decimals,&status);
1446 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),typecode);
1447 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),width);
1448 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),decimals);
1449             OUTPUT:
1450             status
1451             RETVAL
1452              
1453             int
1454             ffbnfm(tform,typecode,repeat,width,status)
1455             char * tform
1456             int typecode = NO_INIT
1457             long repeat = NO_INIT
1458             long width = NO_INIT
1459             int status
1460             ALIAS:
1461             Astro::FITS::CFITSIO::fits_binary_tform = 1
1462             CODE:
1463 0           RETVAL = ffbnfm(tform,&typecode,&repeat,&width,&status);
1464 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),typecode);
1465 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),repeat);
1466 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),width);
1467             OUTPUT:
1468             status
1469             RETVAL
1470              
1471             int
1472             ffbnfmll(tform,typecode,repeat,width,status)
1473             char * tform
1474             int typecode = NO_INIT
1475             LONGLONG repeat = NO_INIT
1476             long width = NO_INIT
1477             int status
1478             ALIAS:
1479             Astro::FITS::CFITSIO::fits_binary_tformll = 1
1480             CODE:
1481 0           RETVAL = ffbnfmll(tform,&typecode,&repeat,&width,&status);
1482 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),typecode);
1483 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),repeat);
1484 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),width);
1485             OUTPUT:
1486             status
1487             RETVAL
1488              
1489             int
1490             ffcrow(fptr,datatype,expr,firstrow,nelements,nulval,array,anynul,status)
1491             FitsFile * fptr
1492             int datatype
1493             char * expr
1494             long firstrow
1495             long nelements
1496             SV * nulval
1497             void * array = NO_INIT
1498             int anynul = NO_INIT
1499             int status
1500             ALIAS:
1501             Astro::FITS::CFITSIO::fits_calc_rows = 1
1502             fitsfilePtr::calc_rows = 2
1503             CODE:
1504 0           array = get_mortalspace(nelements,datatype);
1505 0 0         RETVAL=ffcrow(
1506             fptr->fptr,datatype,expr,firstrow,nelements,
1507             (nulval!=&PL_sv_undef) ? pack1D(nulval,datatype):NULL,
1508             array,&anynul,&status
1509             );
1510             FIXME("ffcrow: I should be calling fftexp (no harm done, however)");
1511 0           unpack1D(ST(6),array,nelements,datatype,fptr->perlyunpacking);
1512             OUTPUT:
1513             anynul
1514             status
1515             RETVAL
1516              
1517             int
1518             ffcalc(infptr, expr, outfptr, parName, parInfo, status)
1519             fitsfile * infptr
1520             char * expr
1521             fitsfile * outfptr
1522             char * parName
1523             char * parInfo
1524             int &status
1525             ALIAS:
1526             Astro::FITS::CFITSIO::fits_calculator = 1
1527             fitsfilePtr::calculator = 2
1528             OUTPUT:
1529             status
1530              
1531             int
1532             ffcalc_rng(infptr, expr, outfptr, parName, parInfo, nranges, firstrow, lastrow, status)
1533             fitsfile * infptr
1534             char * expr
1535             fitsfile * outfptr
1536             char * parName
1537             char * parInfo
1538             int nranges
1539             long * firstrow
1540             long * lastrow
1541             int &status
1542             ALIAS:
1543             Astro::FITS::CFITSIO::fits_calculator_rng = 1
1544             fitsfilePtr::calculator_rng = 2
1545             OUTPUT:
1546             status
1547              
1548             int
1549             ffgtch(gfptr,grouptype,status)
1550             fitsfile * gfptr
1551             int grouptype
1552             int &status
1553             ALIAS:
1554             Astro::FITS::CFITSIO::fits_change_group = 1
1555             fitsfilePtr::change_group = 2
1556             OUTPUT:
1557             status
1558              
1559             void
1560             ffpmrk()
1561             ALIAS:
1562             Astro::FITS::CFITSIO::fits_write_errmark = 1
1563              
1564             void
1565             ffcmrk()
1566             ALIAS:
1567             Astro::FITS::CFITSIO::fits_clear_errmark = 1
1568              
1569             void
1570             ffcmsg()
1571             ALIAS:
1572             Astro::FITS::CFITSIO::fits_clear_errmsg = 1
1573              
1574             int
1575             ffclos(fptr, status)
1576             FitsFile * fptr
1577             int &status
1578             ALIAS:
1579             Astro::FITS::CFITSIO::fits_close_file = 1
1580             fitsfilePtr::close_file = 2
1581             CODE:
1582 11           RETVAL = ffclos(fptr->fptr, &status);
1583 11           fptr->is_open = 0;
1584             OUTPUT:
1585             RETVAL
1586             status
1587              
1588             int
1589             ffgtcm(gfptr,cmopt,status)
1590             fitsfile * gfptr
1591             int cmopt
1592             int &status
1593             ALIAS:
1594             Astro::FITS::CFITSIO::fits_compact_group = 1
1595             fitsfilePtr::compact_group = 2
1596             OUTPUT:
1597             status
1598              
1599             void
1600             ffcmps(templt,string,casesen,match,exact)
1601             char * templt
1602             char * string
1603             int casesen
1604             int &match
1605             int &exact
1606             ALIAS:
1607             Astro::FITS::CFITSIO::fits_compare_str = 1
1608             OUTPUT:
1609             match
1610             exact
1611              
1612             int
1613             ffcmph(fptr,status)
1614             fitsfile * fptr
1615             int &status
1616             ALIAS:
1617             Astro::FITS::CFITSIO::fits_compress_heap = 1
1618             fitsfilePtr::compress_heap = 2
1619             OUTPUT:
1620             status
1621              
1622             int
1623             ffcpcl(infptr,outfptr,incolnum,outcolnum,create_col,status)
1624             fitsfile * infptr
1625             fitsfile * outfptr
1626             int incolnum
1627             int outcolnum
1628             int create_col
1629             int &status
1630             ALIAS:
1631             Astro::FITS::CFITSIO::fits_copy_col = 1
1632             fitsfilePtr::copy_col = 2
1633             OUTPUT:
1634             status
1635              
1636             int
1637             ffccls(infptr,outfptr,incolnum,outcolnum,ncols,create_col,status)
1638             fitsfile * infptr
1639             fitsfile * outfptr
1640             int incolnum
1641             int outcolnum
1642             int ncols
1643             int create_col
1644             int &status
1645             ALIAS:
1646             Astro::FITS::CFITSIO::fits_copy_cols = 1
1647             fitsfilePtr::copy_cols = 2
1648             OUTPUT:
1649             status
1650              
1651             int
1652             ffcprw(infptr,outfptr,firstrow,nrows,status)
1653             fitsfile * infptr
1654             fitsfile * outfptr
1655             LONGLONG firstrow
1656             LONGLONG nrows
1657             int &status
1658             ALIAS:
1659             Astro::FITS::CFITSIO::fits_copy_rows = 1
1660             fitsfilePtr::copy_rows = 2
1661             OUTPUT:
1662             status
1663              
1664             int
1665             ffcpsr(infptr,outfptr,firstrow,nrows,row_status,status)
1666             fitsfile * infptr
1667             fitsfile * outfptr
1668             LONGLONG firstrow
1669             LONGLONG nrows
1670             logical * row_status
1671             int &status
1672             ALIAS:
1673             Astro::FITS::CFITSIO::fits_copy_selrows = 1
1674             fitsfilePtr::copy_selrows = 2
1675             OUTPUT:
1676             status
1677              
1678             int
1679             ffcpdt(infptr,outfptr,status)
1680             fitsfile * infptr
1681             fitsfile * outfptr
1682             int &status
1683             ALIAS:
1684             Astro::FITS::CFITSIO::fits_copy_data = 1
1685             fitsfilePtr::copy_data = 2
1686             OUTPUT:
1687             status
1688              
1689             int
1690             ffwrhdu(infptr, stream, status)
1691             fitsfile * infptr
1692             FILE * stream
1693             int &status
1694             ALIAS:
1695             Astro::FITS::CFITSIO::fits_write_hdu = 1
1696             fitsfilePtr::write_hdu = 2
1697             OUTPUT:
1698             status
1699              
1700             int
1701             ffgtcp(infptr,outfptr,cpopt,status)
1702             fitsfile * infptr
1703             fitsfile * outfptr
1704             int cpopt
1705             int &status
1706             ALIAS:
1707             Astro::FITS::CFITSIO::fits_copy_group = 1
1708             fitsfilePtr::copy_group = 2
1709             OUTPUT:
1710             status
1711              
1712             int
1713             ffcpfl(infptr,outfptr,previous,current,following,status)
1714             fitsfile * infptr
1715             fitsfile * outfptr
1716             int previous
1717             int current
1718             int following
1719             int &status
1720             ALIAS:
1721             Astro::FITS::CFITSIO::fits_copy_file = 1
1722             fitsfilePtr::copy_file = 2
1723             OUTPUT:
1724             status
1725              
1726             int
1727             ffcopy(infptr,outfptr,morekeys,status)
1728             fitsfile * infptr
1729             fitsfile * outfptr
1730             int morekeys
1731             int &status
1732             ALIAS:
1733             Astro::FITS::CFITSIO::fits_copy_hdu = 1
1734             fitsfilePtr::copy_hdu = 2
1735             OUTPUT:
1736             status
1737              
1738             int
1739             ffcphd(infptr,outfptr,status)
1740             fitsfile * infptr
1741             fitsfile * outfptr
1742             int &status
1743             ALIAS:
1744             Astro::FITS::CFITSIO::fits_copy_header = 1
1745             fitsfilePtr::copy_header = 2
1746             OUTPUT:
1747             status
1748              
1749             int
1750             ffcpky(infptr,outfptr,innum,outnum,keyroot,status)
1751             fitsfile * infptr
1752             fitsfile * outfptr
1753             int innum
1754             int outnum
1755             char * keyroot
1756             int &status
1757             ALIAS:
1758             Astro::FITS::CFITSIO::fits_copy_key = 1
1759             fitsfilePtr::copy_key = 2
1760             OUTPUT:
1761             status
1762              
1763             int
1764             ffgmcp(gfptr,mfptr,member,cpopt,status)
1765             fitsfile * gfptr
1766             fitsfile * mfptr
1767             long member
1768             int cpopt
1769             int &status
1770             ALIAS:
1771             Astro::FITS::CFITSIO::fits_copy_member = 1
1772             fitsfilePtr::copy_member = 2
1773             OUTPUT:
1774             status
1775              
1776             FitsFile *
1777             create_file(name,status)
1778             char * name
1779             int status
1780             PREINIT:
1781             FitsFile* fptr;
1782             CODE:
1783 2           NewFitsFile(fptr);
1784 2 50         if (ffinit(&(fptr->fptr),name,&status))
1785 0           AbortFitsFile(fptr);
1786 2           RETVAL = fptr;
1787              
1788             OUTPUT:
1789             RETVAL
1790             status
1791              
1792             int
1793             ffinit(fptr,name,status)
1794             FitsFile * fptr = NO_INIT
1795             char * name
1796             int status
1797             ALIAS:
1798             Astro::FITS::CFITSIO::fits_create_file = 1
1799             CODE:
1800 3           NewFitsFile(fptr);
1801 3           RETVAL = ffinit(&(fptr->fptr),name,&status);
1802 3 50         if (RETVAL)
1803 0           AbortFitsFile(fptr);
1804             OUTPUT:
1805             RETVAL
1806             fptr
1807             status
1808              
1809             int
1810             ffdkinit(fptr,name,status)
1811             FitsFile * fptr = NO_INIT
1812             char * name
1813             int status
1814             ALIAS:
1815             Astro::FITS::CFITSIO::fits_create_diskfile = 1
1816             CODE:
1817 0           NewFitsFile(fptr);
1818 0           RETVAL = ffdkinit(&(fptr->fptr),name,&status);
1819 0 0         if (RETVAL)
1820 0           AbortFitsFile(fptr);
1821             OUTPUT:
1822             RETVAL
1823             fptr
1824             status
1825              
1826             int
1827             ffgtcr(fptr,grpname,grouptype,status)
1828             fitsfile * fptr
1829             char * grpname
1830             int grouptype
1831             int &status
1832             ALIAS:
1833             Astro::FITS::CFITSIO::fits_create_group = 1
1834             fitsfilePtr::create_group = 2
1835             OUTPUT:
1836             status
1837              
1838             int
1839             ffcrhd(fptr,status)
1840             fitsfile * fptr
1841             int &status
1842             ALIAS:
1843             Astro::FITS::CFITSIO::fits_create_hdu = 1
1844             fitsfilePtr::create_hdu = 2
1845             OUTPUT:
1846             status
1847              
1848             int
1849             ffcrim(fptr,bitpix,naxis,naxes,status)
1850             fitsfile * fptr
1851             int bitpix
1852             int naxis
1853             long * naxes
1854             int &status
1855             ALIAS:
1856             Astro::FITS::CFITSIO::fits_create_img = 1
1857             fitsfilePtr::create_img = 2
1858             OUTPUT:
1859             status
1860              
1861             int
1862             ffcrimll(fptr,bitpix,naxis,naxes,status)
1863             fitsfile * fptr
1864             int bitpix
1865             int naxis
1866             LONGLONG * naxes
1867             int &status
1868             ALIAS:
1869             Astro::FITS::CFITSIO::fits_create_imgll = 1
1870             fitsfilePtr::create_imgll = 2
1871             OUTPUT:
1872             status
1873              
1874             int
1875             ffcrtb(fptr,tbltype,naxis2,tfields,ttype,tform,tunit,extname,status)
1876             fitsfile * fptr
1877             int tbltype
1878             LONGLONG naxis2
1879             int tfields
1880             char ** ttype
1881             char ** tform
1882             char ** tunit
1883             char * extname
1884             int &status
1885             ALIAS:
1886             Astro::FITS::CFITSIO::fits_create_tbl = 1
1887             fitsfilePtr::create_tbl = 2
1888             OUTPUT:
1889             status
1890              
1891             int
1892             ffcpht(infptr,outfptr,firstrow,nrows,status)
1893             fitsfile * infptr
1894             fitsfile * outfptr
1895             LONGLONG firstrow
1896             LONGLONG nrows
1897             int &status
1898             ALIAS:
1899             Astro::FITS::CFITSIO::fits_copy_hdutab = 1
1900             fitsfilePtr::copy_hdutab = 2
1901             OUTPUT:
1902             status
1903              
1904             FitsFile *
1905             create_template(filename,tpltfile,status)
1906             char * filename
1907             char * tpltfile
1908             int status
1909             PREINIT:
1910             FitsFile * fptr;
1911             CODE:
1912 0           NewFitsFile(fptr);
1913 0 0         if (fftplt(&(fptr->fptr),filename,tpltfile,&status))
1914 0           AbortFitsFile(fptr);
1915 0           RETVAL = fptr;
1916             OUTPUT:
1917             RETVAL
1918             status
1919              
1920             int
1921             fftplt(fptr,filename,tpltfile,status)
1922             FitsFile * &fptr = NO_INIT
1923             char * filename
1924             char * tpltfile
1925             int &status
1926             ALIAS:
1927             Astro::FITS::CFITSIO::fits_create_template = 1
1928             CODE:
1929 0           NewFitsFile(fptr);
1930 0           RETVAL = fftplt(&(fptr->fptr),filename,tpltfile,&status);
1931 0 0         if (RETVAL)
1932 0           AbortFitsFile(fptr);
1933             OUTPUT:
1934             RETVAL
1935             fptr
1936             status
1937              
1938             int
1939             ffdt2s(year,month,day,datestr,status)
1940             int year
1941             int month
1942             int day
1943             char * datestr = NO_INIT
1944             int status
1945             ALIAS:
1946             Astro::FITS::CFITSIO::fits_date2str = 1
1947             CODE:
1948 0           datestr = get_mortalspace(11,TBYTE); /* YYYY-MM-DD or dd/mm/yy */
1949 0           RETVAL=ffdt2s(year,month,day,datestr,&status);
1950             OUTPUT:
1951             datestr
1952             status
1953             RETVAL
1954              
1955             unsigned long
1956             ffdsum(ascii,complm,sum)
1957             char * ascii
1958             int complm
1959             unsigned long &sum
1960             ALIAS:
1961             Astro::FITS::CFITSIO::fits_decode_chksum = 1
1962             OUTPUT:
1963             sum
1964              
1965             int
1966             ffdtdm(fptr,tdimstr,colnum,naxis,naxes,status)
1967             FitsFile * fptr
1968             char * tdimstr
1969             int colnum
1970             int naxis = NO_INIT
1971             long * naxes = NO_INIT
1972             int status
1973             ALIAS:
1974             Astro::FITS::CFITSIO::fits_decode_tdim = 1
1975             fitsfilePtr::decode_tdim = 2
1976             CODE:
1977 0 0         if (ST(4)!=&PL_sv_undef) { /* caller wants naxes set */
1978 0           ffdtdm(fptr->fptr,tdimstr,colnum,0,&naxis,NULL,&status);
1979 0           naxes = get_mortalspace(naxis,TLONG);
1980             }
1981             else {
1982 0           naxes = NULL;
1983 0           naxis = 0;
1984             }
1985 0           RETVAL=ffdtdm(fptr->fptr,tdimstr,colnum,naxis,&naxis,naxes,&status);
1986 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),naxis);
1987 0 0         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),naxes,naxis,TLONG,fptr->perlyunpacking);
1988             OUTPUT:
1989             status
1990             RETVAL
1991              
1992             int
1993             ffdtdmll(fptr,tdimstr,colnum,naxis,naxes,status)
1994             FitsFile * fptr
1995             char * tdimstr
1996             int colnum
1997             int naxis = NO_INIT
1998             LONGLONG * naxes = NO_INIT
1999             int status
2000             ALIAS:
2001             Astro::FITS::CFITSIO::fits_decode_tdimll = 1
2002             fitsfilePtr::decode_tdimll = 2
2003             CODE:
2004 0 0         if (ST(4)!=&PL_sv_undef) { /* caller wants naxes set */
2005 0           ffdtdmll(fptr->fptr,tdimstr,colnum,0,&naxis,NULL,&status);
2006 0           naxes = get_mortalspace(naxis,TLONGLONG);
2007             }
2008             else {
2009 0           naxes = NULL;
2010 0           naxis = 0;
2011             }
2012 0           RETVAL=ffdtdmll(fptr->fptr,tdimstr,colnum,naxis,&naxis,naxes,&status);
2013 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),naxis);
2014 0 0         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),naxes,naxis,TLONGLONG,fptr->perlyunpacking);
2015             OUTPUT:
2016             status
2017             RETVAL
2018              
2019             int
2020             fits_decomp_img(infptr,outfptr,status)
2021             fitsfile * infptr
2022             fitsfile * outfptr
2023             int &status
2024             ALIAS:
2025             Astro::FITS::CFITSIO::fits_decompress_img = 1
2026             fitsfilePtr::decompress_img = 2
2027             OUTPUT:
2028             status
2029              
2030             int
2031             ffdcol(fptr,colnum,status)
2032             fitsfile * fptr
2033             int colnum
2034             int &status
2035             ALIAS:
2036             Astro::FITS::CFITSIO::fits_delete_col = 1
2037             fitsfilePtr::delete_col = 2
2038             OUTPUT:
2039             status
2040              
2041             int
2042             ffdelt(fptr,status)
2043             FitsFile * fptr
2044             int &status
2045             ALIAS:
2046             Astro::FITS::CFITSIO::fits_delete_file = 1
2047             fitsfilePtr::delete_file = 2
2048             CODE:
2049 3           RETVAL = ffdelt(fptr->fptr, &status );
2050 3           fptr->is_open = 0;
2051             OUTPUT:
2052             RETVAL
2053             status
2054              
2055             int
2056             ffdhdu(fptr,hdutype,status)
2057             fitsfile * fptr
2058             int hdutype = NO_INIT
2059             int status
2060             ALIAS:
2061             Astro::FITS::CFITSIO::fits_delete_hdu = 1
2062             fitsfilePtr::delete_hdu = 2
2063             CODE:
2064 0           RETVAL = ffdhdu(fptr,&hdutype,&status);
2065 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),hdutype);
2066             OUTPUT:
2067             status
2068             RETVAL
2069              
2070             int
2071             ffdkey(fptr,keyname,status)
2072             fitsfile * fptr
2073             char * keyname
2074             int &status
2075             ALIAS:
2076             Astro::FITS::CFITSIO::fits_delete_key = 1
2077             fitsfilePtr::delete_key = 2
2078             OUTPUT:
2079             status
2080              
2081             int
2082             ffdrec(fptr,keynum,status)
2083             fitsfile * fptr
2084             int keynum
2085             int &status
2086             ALIAS:
2087             Astro::FITS::CFITSIO::fits_delete_record = 1
2088             fitsfilePtr::delete_record = 2
2089             OUTPUT:
2090             status
2091              
2092             int
2093             ffdrrg(fptr,rangelist,status)
2094             fitsfile * fptr
2095             char * rangelist
2096             int &status
2097             ALIAS:
2098             Astro::FITS::CFITSIO::fits_delete_rowrange = 1
2099             fitsfilePtr::delete_rowrange = 2
2100             OUTPUT:
2101             status
2102              
2103             int
2104             ffdrws(fptr,rowlist,nrows,status)
2105             fitsfile * fptr
2106             long * rowlist
2107             long nrows
2108             int &status
2109             ALIAS:
2110             Astro::FITS::CFITSIO::fits_delete_rowlist = 1
2111             fitsfilePtr::delete_rowlist = 2
2112             OUTPUT:
2113             status
2114              
2115             int
2116             ffdrwsll(fptr,rowlist,nrows,status)
2117             fitsfile * fptr
2118             LONGLONG* rowlist
2119             LONGLONG nrows
2120             int &status
2121             ALIAS:
2122             Astro::FITS::CFITSIO::fits_delete_rowlistll = 1
2123             fitsfilePtr::delete_rowlistll = 2
2124             OUTPUT:
2125             status
2126              
2127             int
2128             ffdrow(fptr,firstrow,nrows,status)
2129             fitsfile * fptr
2130             LONGLONG firstrow
2131             LONGLONG nrows
2132             int &status
2133             ALIAS:
2134             Astro::FITS::CFITSIO::fits_delete_rows = 1
2135             fitsfilePtr::delete_rows = 2
2136             OUTPUT:
2137             status
2138              
2139             void
2140             ffesum(sum,complm,ascii)
2141             unsigned long sum
2142             int complm
2143             char * ascii = NO_INIT
2144             ALIAS:
2145             Astro::FITS::CFITSIO::fits_encode_chksum = 1
2146             CODE:
2147 0           ascii = get_mortalspace(17,TBYTE);
2148 0           ffesum(sum,complm,ascii);
2149             OUTPUT:
2150             ascii
2151              
2152             int
2153             ffexist(filename, exists, status)
2154             char* filename
2155             int &exists = NO_INIT
2156             int &status
2157             ALIAS:
2158             Astro::FITS::CFITSIO::fits_file_exists = 1
2159             OUTPUT:
2160             exists
2161             status
2162              
2163             int
2164             ffflmd(fptr,iomode,status)
2165             fitsfile * fptr
2166             int &iomode = NO_INIT
2167             int &status
2168             ALIAS:
2169             Astro::FITS::CFITSIO::fits_file_mode = 1
2170             fitsfilePtr::file_mode = 2
2171             OUTPUT:
2172             iomode
2173             status
2174              
2175             int
2176             ffflnm(fptr,filename,status)
2177             fitsfile * fptr
2178             char * filename = NO_INIT
2179             int status
2180             ALIAS:
2181             Astro::FITS::CFITSIO::fits_file_name = 1
2182             fitsfilePtr::file_name = 2
2183             CODE:
2184 5           filename = get_mortalspace(FLEN_FILENAME,TBYTE);
2185 5           RETVAL=ffflnm(fptr,filename,&status);
2186             OUTPUT:
2187             filename
2188             status
2189             RETVAL
2190              
2191             int
2192             ffgnxk(fptr,inclist,ninc,exclist,nexc,card,status)
2193             fitsfile * fptr
2194             char ** inclist
2195             int ninc
2196             char ** exclist
2197             int nexc
2198             char * card = NO_INIT
2199             int status
2200             ALIAS:
2201             Astro::FITS::CFITSIO::fits_find_nextkey = 1
2202             fitsfilePtr::find_nextkey = 2
2203             CODE:
2204 14           card = get_mortalspace(FLEN_CARD,TBYTE);
2205 14           RETVAL=ffgnxk(fptr,inclist,ninc,exclist,nexc,card,&status);
2206             OUTPUT:
2207             card
2208             status
2209             RETVAL
2210              
2211             int
2212             ffffrw(fptr, expr, rownum, status)
2213             fitsfile * fptr
2214             char * expr
2215             long &rownum = NO_INIT
2216             int &status
2217             ALIAS:
2218             Astro::FITS::CFITSIO::fits_find_first_row = 1
2219             fitsfilePtr::find_first_row = 2
2220             OUTPUT:
2221             rownum
2222             status
2223              
2224             int
2225             fffrow(fptr,expr,firstrow,nrows,n_good_rows,row_status,status)
2226             FitsFile * fptr
2227             char * expr
2228             long firstrow
2229             long nrows
2230             long n_good_rows = NO_INIT
2231             logical * row_status = NO_INIT
2232             int status
2233             ALIAS:
2234             Astro::FITS::CFITSIO::fits_find_rows = 1
2235             fitsfilePtr::find_rows = 2
2236             CODE:
2237 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
2238 0 0         SvGROW(ST(5),nrows*sizeof_datatype(TLOGICAL));
    0          
2239 0 0         RETVAL=fffrow(fptr->fptr,expr,firstrow,nrows,&n_good_rows,(logical*)SvPV(ST(5),PL_na),&status);
2240             }
2241             else {
2242 0           row_status = get_mortalspace(nrows,TLOGICAL);
2243 0           RETVAL=fffrow(fptr->fptr,expr,firstrow,nrows,&n_good_rows,row_status,&status);
2244 0           unpack1D(ST(5),row_status,nrows,TLOGICAL,fptr->perlyunpacking);
2245             }
2246 0 0         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4), n_good_rows); /* value-added */
2247             OUTPUT:
2248             status
2249             RETVAL
2250              
2251             int
2252             ffflus(fptr,status)
2253             fitsfile * fptr
2254             int &status
2255             ALIAS:
2256             Astro::FITS::CFITSIO::fits_flush_file = 1
2257             fitsfilePtr::flush_file = 2
2258             OUTPUT:
2259             status
2260              
2261             int
2262             ffihtps()
2263             ALIAS:
2264             Astro::FITS::CFITSIO::fits_init_https = 1
2265              
2266             int
2267             ffchtps()
2268             ALIAS:
2269             Astro::FITS::CFITSIO::fits_cleanup_https = 1
2270              
2271             void
2272             ffvhtps(flag)
2273             int flag
2274             ALIAS:
2275             Astro::FITS::CFITSIO::fits_verbose_https = 1
2276              
2277             void
2278             ffshdwn(flag)
2279             int flag
2280             ALIAS:
2281             Astro::FITS::CFITSIO::fits_show_download_progress = 1
2282              
2283             int
2284             ffgtmo()
2285             ALIAS:
2286             Astro::FITS::CFITSIO::fits_get_timeout = 1
2287              
2288             int
2289             ffstmo(seconds, status)
2290             int seconds
2291             int &status
2292             ALIAS:
2293             Astro::FITS::CFITSIO::fits_set_timeout = 1
2294             OUTPUT:
2295             status
2296              
2297             int
2298             ffflsh(fptr, clearbuf, status)
2299             fitsfile * fptr
2300             int clearbuf
2301             int &status
2302             ALIAS:
2303             Astro::FITS::CFITSIO::fits_flush_buffer = 1
2304             fitsfilePtr::flush_buffer = 2
2305             OUTPUT:
2306             status
2307              
2308             int
2309             ffgacl(fptr,colnum,ttype,tbcol,tunit,tform,scale,zero,nulstr,tdisp,status)
2310             fitsfile * fptr
2311             int colnum
2312             char * ttype = NO_INIT
2313             long tbcol = NO_INIT
2314             char * tunit = NO_INIT
2315             char * tform = NO_INIT
2316             double scale = NO_INIT
2317             double zero = NO_INIT
2318             char * nulstr = NO_INIT
2319             char * tdisp = NO_INIT
2320             int status
2321             ALIAS:
2322             Astro::FITS::CFITSIO::fits_get_acolparms = 1
2323             fitsfilePtr::get_acolparms = 2
2324             CODE:
2325 5 50         ttype = (ST(2) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2326 5 50         tunit = (ST(4) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2327 5 50         tform = (ST(5) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2328 5 50         nulstr= (ST(8) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2329 5 50         tdisp = (ST(9) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2330 5           RETVAL=ffgacl(fptr,colnum,ttype,&tbcol,tunit,tform,&scale,&zero,nulstr,tdisp,&status);
2331 5 50         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),tbcol);
2332 5 50         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),scale);
2333 5 50         if (ST(7) != &PL_sv_undef) sv_setnv(ST(7),zero);
2334             OUTPUT:
2335             ttype
2336             tunit
2337             tform
2338             nulstr
2339             tdisp
2340             status
2341             RETVAL
2342              
2343             int
2344             ffgbcl(fptr,colnum,ttype,tunit,dtype,repeat,scale,zero,nulval,tdisp,status)
2345             fitsfile * fptr
2346             int colnum
2347             char * ttype = NO_INIT
2348             char * tunit = NO_INIT
2349             char * dtype = NO_INIT
2350             long repeat = NO_INIT
2351             double scale = NO_INIT
2352             double zero = NO_INIT
2353             long nulval = NO_INIT
2354             char * tdisp = NO_INIT
2355             int status
2356             ALIAS:
2357             Astro::FITS::CFITSIO::fits_get_bcolparms = 1
2358             fitsfilePtr::get_bcolparms = 2
2359             CODE:
2360 10 50         ttype = (ST(2) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2361 10 50         tunit = (ST(3) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2362 10 50         dtype = (ST(4) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2363 10 50         tdisp = (ST(9) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2364 10           RETVAL=ffgbcl(fptr,colnum,ttype,tunit,dtype,&repeat,&scale,&zero,&nulval,tdisp,&status);
2365 10 50         if (ST(5) != &PL_sv_undef) sv_setiv(ST(5),repeat);
2366 10 50         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),scale);
2367 10 50         if (ST(7) != &PL_sv_undef) sv_setnv(ST(7),zero);
2368 10 50         if (ST(8) != &PL_sv_undef) sv_setiv(ST(8),nulval);
2369             OUTPUT:
2370             ttype
2371             tunit
2372             dtype
2373             tdisp
2374             status
2375             RETVAL
2376              
2377             int
2378             ffgbclll(fptr,colnum,ttype,tunit,dtype,repeat,scale,zero,nulval,tdisp,status)
2379             fitsfile * fptr
2380             int colnum
2381             char * ttype = NO_INIT
2382             char * tunit = NO_INIT
2383             char * dtype = NO_INIT
2384             LONGLONG repeat = NO_INIT
2385             double scale = NO_INIT
2386             double zero = NO_INIT
2387             LONGLONG nulval = NO_INIT
2388             char * tdisp = NO_INIT
2389             int status
2390             ALIAS:
2391             Astro::FITS::CFITSIO::fits_get_bcolparmsll = 1
2392             fitsfilePtr::get_bcolparmsll = 2
2393             CODE:
2394 0 0         ttype = (ST(2) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2395 0 0         tunit = (ST(3) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2396 0 0         dtype = (ST(4) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2397 0 0         tdisp = (ST(9) != &PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
2398 0           RETVAL=ffgbclll(fptr,colnum,ttype,tunit,dtype,&repeat,&scale,&zero,&nulval,tdisp,&status);
2399 0 0         if (ST(5) != &PL_sv_undef) sv_setiv(ST(5),repeat);
2400 0 0         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),scale);
2401 0 0         if (ST(7) != &PL_sv_undef) sv_setnv(ST(7),zero);
2402 0 0         if (ST(8) != &PL_sv_undef) sv_setiv(ST(8),nulval);
2403             OUTPUT:
2404             ttype
2405             tunit
2406             dtype
2407             tdisp
2408             status
2409             RETVAL
2410              
2411             int
2412             ffgcks(fptr,datasum,hdusum,status)
2413             fitsfile * fptr
2414             unsigned long datasum = NO_INIT
2415             unsigned long hdusum = NO_INIT
2416             int status
2417             ALIAS:
2418             Astro::FITS::CFITSIO::fits_get_chksum = 1
2419             fitsfilePtr::get_chksum = 2
2420             CODE:
2421 0           RETVAL = ffgcks(fptr,&datasum,&hdusum,&status);
2422 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1), datasum); /* value-added */
2423 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2), hdusum); /* value-added */
2424             OUTPUT:
2425             status
2426             RETVAL
2427              
2428             int
2429             ffgcnn(fptr,casesen,templt,colname,colnum,status)
2430             fitsfile * fptr
2431             int casesen
2432             char * templt
2433             char * colname = NO_INIT
2434             int colnum = NO_INIT
2435             int status
2436             ALIAS:
2437             Astro::FITS::CFITSIO::fits_get_colname = 1
2438             fitsfilePtr::get_colname = 2
2439             CODE:
2440 16           colname = get_mortalspace(FLEN_KEYWORD,TBYTE);
2441 16           RETVAL=ffgcnn(fptr,casesen,templt,colname,&colnum,&status);
2442 16 50         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),colnum); /* value-added */
2443             OUTPUT:
2444             colname
2445             status
2446             RETVAL
2447              
2448             int
2449             ffgcno(fptr,casesen,templt,colnum,status)
2450             fitsfile * fptr
2451             int casesen
2452             char * templt
2453             int colnum = NO_INIT
2454             int status
2455             ALIAS:
2456             Astro::FITS::CFITSIO::fits_get_colnum = 1
2457             fitsfilePtr::get_colnum = 2
2458             CODE:
2459 2           RETVAL = fits_get_colnum(fptr,casesen,templt,&colnum,&status);
2460 2 50         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),colnum);
2461             OUTPUT:
2462             status
2463             RETVAL
2464              
2465             int
2466             ffgtcl(fptr,colnum,typecode,repeat,width,status)
2467             fitsfile * fptr
2468             int colnum
2469             int typecode = NO_INIT
2470             long repeat = NO_INIT
2471             long width = NO_INIT
2472             int status
2473             ALIAS:
2474             Astro::FITS::CFITSIO::fits_get_coltype = 1
2475             fitsfilePtr::get_coltype = 2
2476             CODE:
2477 15           RETVAL = ffgtcl(fptr,colnum,&typecode,&repeat,&width,&status);
2478 15 50         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),typecode);
2479 15 50         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),repeat);
2480 15 50         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),width);
2481             OUTPUT:
2482             status
2483             RETVAL
2484              
2485             int
2486             ffgtclll(fptr,colnum,typecode,repeat,width,status)
2487             fitsfile * fptr
2488             int colnum
2489             int typecode = NO_INIT
2490             LONGLONG repeat = NO_INIT
2491             LONGLONG width = NO_INIT
2492             int status
2493             ALIAS:
2494             Astro::FITS::CFITSIO::fits_get_coltypell = 1
2495             fitsfilePtr::get_coltypell = 2
2496             CODE:
2497 0           RETVAL = ffgtclll(fptr,colnum,&typecode,&repeat,&width,&status);
2498 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),typecode);
2499 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),repeat);
2500 0 0         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),width);
2501             OUTPUT:
2502             status
2503             RETVAL
2504              
2505             int
2506             ffeqty(fptr,colnum,typecode,repeat,width,status)
2507             fitsfile * fptr
2508             int colnum
2509             int typecode = NO_INIT
2510             long repeat = NO_INIT
2511             long width = NO_INIT
2512             int status
2513             ALIAS:
2514             Astro::FITS::CFITSIO::fits_get_eqcoltype = 1
2515             fitsfilePtr::get_eqcoltype = 2
2516             CODE:
2517 0           RETVAL = ffeqty(fptr,colnum,&typecode,&repeat,&width,&status);
2518 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),typecode);
2519 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),repeat);
2520 0 0         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),width);
2521             OUTPUT:
2522             status
2523             RETVAL
2524              
2525             int
2526             ffeqtyll(fptr,colnum,typecode,repeat,width,status)
2527             fitsfile * fptr
2528             int colnum
2529             int typecode = NO_INIT
2530             LONGLONG repeat = NO_INIT
2531             LONGLONG width = NO_INIT
2532             int status
2533             ALIAS:
2534             Astro::FITS::CFITSIO::fits_get_eqcoltypell = 1
2535             fitsfilePtr::get_eqcoltypell = 2
2536             CODE:
2537 0           RETVAL = ffeqtyll(fptr,colnum,&typecode,&repeat,&width,&status);
2538 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),typecode);
2539 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),repeat);
2540 0 0         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),width);
2541             OUTPUT:
2542             status
2543             RETVAL
2544              
2545             int
2546             fits_get_compression_type(fptr, comptype, status)
2547             fitsfile *fptr
2548             int &comptype = NO_INIT
2549             int &status
2550             ALIAS:
2551             fitsfilePtr::get_compression_type = 1
2552             OUTPUT:
2553             comptype
2554             status
2555              
2556             void
2557             ffgerr(status,err_text)
2558             int status
2559             char * err_text = NO_INIT
2560             ALIAS:
2561             Astro::FITS::CFITSIO::fits_get_errstatus = 1
2562             CODE:
2563 0           err_text = get_mortalspace(FLEN_ERRMSG,TBYTE);
2564 0           ffgerr(status,err_text);
2565             OUTPUT:
2566             err_text
2567              
2568             int
2569             ffghps(fptr,keysexist,keynum,status)
2570             fitsfile * fptr
2571             int keysexist = NO_INIT
2572             int keynum = NO_INIT
2573             int status
2574             ALIAS:
2575             Astro::FITS::CFITSIO::fits_get_hdrpos = 1
2576             fitsfilePtr::get_hdrpos = 2
2577             CODE:
2578 2           RETVAL = ffghps(fptr,&keysexist,&keynum,&status);
2579 2 50         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),keysexist); /* value-added */
2580 2 50         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),keynum); /* value-added */
2581             OUTPUT:
2582             status
2583             RETVAL
2584              
2585             int
2586             ffghsp(fptr,keysexist,morekeys,status)
2587             fitsfile * fptr
2588             int keysexist = NO_INIT
2589             int morekeys = NO_INIT
2590             int status
2591             ALIAS:
2592             Astro::FITS::CFITSIO::fits_get_hdrspace = 1
2593             fitsfilePtr::get_hdrspace = 2
2594             CODE:
2595 2           RETVAL = ffghsp(fptr,&keysexist,&morekeys,&status);
2596 2 50         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),keysexist); /* value-added */
2597 2 50         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),morekeys); /* value-added */
2598             OUTPUT:
2599             status
2600             RETVAL
2601              
2602             int
2603             ffghdn(fptr,hdunum)
2604             fitsfile * fptr
2605             int hdunum = NO_INIT
2606             ALIAS:
2607             Astro::FITS::CFITSIO::fits_get_hdu_num = 1
2608             fitsfilePtr::get_hdu_num = 2
2609             CODE:
2610 5           RETVAL = ffghdn(fptr,&hdunum);
2611 5 50         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),hdunum);
2612             OUTPUT:
2613             RETVAL
2614              
2615             int
2616             ffghdt(fptr,hdutype,status)
2617             fitsfile * fptr
2618             int &hdutype = NO_INIT
2619             int &status
2620             ALIAS:
2621             Astro::FITS::CFITSIO::fits_get_hdu_type = 1
2622             fitsfilePtr::get_hdu_type = 2
2623             OUTPUT:
2624             hdutype
2625             status
2626              
2627             int
2628             ffghad(fptr,headstart,datastart,dataend,status)
2629             fitsfile * fptr
2630             long headstart = NO_INIT
2631             long datastart = NO_INIT
2632             long dataend = NO_INIT
2633             int status
2634             ALIAS:
2635             Astro::FITS::CFITSIO::fits_get_hduaddr = 1
2636             fitsfilePtr::get_hduaddr = 2
2637             CODE:
2638 0           RETVAL = ffghad(fptr,&headstart,&datastart,&dataend,&status);
2639 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),headstart);
2640 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),datastart);
2641 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),dataend);
2642             OUTPUT:
2643             status
2644             RETVAL
2645              
2646             int
2647             ffghadll(fptr,headstart,datastart,dataend,status)
2648             fitsfile * fptr
2649             LONGLONG headstart = NO_INIT
2650             LONGLONG datastart = NO_INIT
2651             LONGLONG dataend = NO_INIT
2652             int status
2653             ALIAS:
2654             Astro::FITS::CFITSIO::fits_get_hduaddrll = 1
2655             fitsfilePtr::get_hduaddrll = 2
2656             CODE:
2657 0           RETVAL = ffghadll(fptr,&headstart,&datastart,&dataend,&status);
2658 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),headstart);
2659 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),datastart);
2660 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),dataend);
2661             OUTPUT:
2662             status
2663             RETVAL
2664              
2665             int
2666             ffghof(fptr, headstart, datastart, dataend, status)
2667             fitsfile * fptr
2668             OFF_T headstart = NO_INIT
2669             OFF_T datastart = NO_INIT
2670             OFF_T dataend = NO_INIT
2671             int status
2672             ALIAS:
2673             Astro::FITS::CFITSIO::fits_get_hduoff = 1
2674             fitsfilePtr::get_hduoff = 2
2675             CODE:
2676 0           RETVAL = ffghof(fptr,&headstart,&datastart,&dataend,&status);
2677 0 0         if (ST(1) != &PL_sv_undef) sv_setuv(ST(1),headstart);
2678 0 0         if (ST(2) != &PL_sv_undef) sv_setuv(ST(2),datastart);
2679 0 0         if (ST(3) != &PL_sv_undef) sv_setuv(ST(3),dataend);
2680             OUTPUT:
2681             status
2682             RETVAL
2683              
2684              
2685             int
2686             ffgknm(card,name,len,status)
2687             char * card
2688             char * name = NO_INIT
2689             int len = NO_INIT
2690             int status
2691             ALIAS:
2692             Astro::FITS::CFITSIO::fits_get_keyname = 1
2693             CODE:
2694 3           name = get_mortalspace(FLEN_KEYWORD,TBYTE);
2695 3           RETVAL = ffgknm(card,name,&len,&status);
2696 3 50         if (ST(2) != &PL_sv_undef)
2697 0           sv_setiv(ST(2), len);
2698             OUTPUT:
2699             name
2700             status
2701             RETVAL
2702              
2703             int
2704             ffdtyp(value,dtype,status)
2705             char * value
2706             char &dtype = NO_INIT
2707             int &status
2708             ALIAS:
2709             Astro::FITS::CFITSIO::fits_get_keytype = 1
2710             OUTPUT:
2711             dtype
2712             status
2713              
2714             int
2715             ffgidt(fptr,bitpix,status)
2716             fitsfile * fptr
2717             int &bitpix = NO_INIT
2718             int &status
2719             ALIAS:
2720             Astro::FITS::CFITSIO::fits_get_img_type = 1
2721             fitsfilePtr::get_img_type = 2
2722             OUTPUT:
2723             bitpix
2724             status
2725              
2726             int
2727             ffinttyp(value,inttype,neg,status)
2728             char * value
2729             int &inttype = NO_INIT
2730             int &neg = NO_INIT
2731             int &status
2732             ALIAS:
2733             Astro::FITS::CFITSIO::fits_get_inttype = 1
2734             OUTPUT:
2735             inttype
2736             neg
2737             status
2738              
2739             int
2740             ffgiet(fptr,bitpix,status)
2741             fitsfile * fptr
2742             int &bitpix = NO_INIT
2743             int &status
2744             ALIAS:
2745             Astro::FITS::CFITSIO::fits_get_img_equivtype = 1
2746             fitsfilePtr::get_img_equivtype = 2
2747             OUTPUT:
2748             bitpix
2749             status
2750              
2751             int
2752             ffgidm(fptr,naxis,status)
2753             fitsfile * fptr
2754             int &naxis = NO_INIT
2755             int &status
2756             ALIAS:
2757             Astro::FITS::CFITSIO::fits_get_img_dim = 1
2758             fitsfilePtr::get_img_dim = 2
2759             OUTPUT:
2760             naxis
2761             status
2762              
2763             int
2764             ffgisz(fptr,naxes,status)
2765             FitsFile * fptr
2766             long *naxes = NO_INIT
2767             int status
2768             ALIAS:
2769             Astro::FITS::CFITSIO::fits_get_img_size = 1
2770             fitsfilePtr::get_img_size = 2
2771             PREINIT:
2772             int nlen;
2773             CODE:
2774 0           RETVAL = ffgidm(fptr->fptr,&nlen,&status);
2775 0 0         if (RETVAL <= 0) {
2776 0           naxes = get_mortalspace(nlen,TLONG);
2777 0           RETVAL = ffgisz(fptr->fptr,nlen,naxes,&status);
2778             /* unpack as Perl array */
2779 0           unpack1D(ST(1),naxes,nlen,TLONG,1);
2780             }
2781             OUTPUT:
2782             status
2783             RETVAL
2784              
2785             int
2786             ffgiszll(fptr,naxes,status)
2787             FitsFile * fptr
2788             LONGLONG *naxes = NO_INIT
2789             int status
2790             ALIAS:
2791             Astro::FITS::CFITSIO::fits_get_img_sizell = 1
2792             fitsfilePtr::get_img_sizell = 2
2793             PREINIT:
2794             int nlen;
2795             CODE:
2796 0           RETVAL = ffgidm(fptr->fptr,&nlen,&status);
2797 0 0         if (RETVAL <= 0) {
2798 0           naxes = get_mortalspace(nlen,TLONGLONG);
2799 0           RETVAL = ffgiszll(fptr->fptr,nlen,naxes,&status);
2800             /* unpack as Perl array */
2801 0           unpack1D(ST(1),naxes,nlen,TLONGLONG,1);
2802             }
2803             OUTPUT:
2804             status
2805             RETVAL
2806              
2807             int
2808             fits_get_noise_bits(fptr, noisebits, status)
2809             fitsfile *fptr
2810             int &noisebits = NO_INIT
2811             int &status
2812             ALIAS:
2813             fitsfilePtr::get_noise_bits = 1
2814             OUTPUT:
2815             noisebits
2816             status
2817              
2818             int
2819             ffgncl(fptr,ncols,status)
2820             fitsfile * fptr
2821             int &ncols = NO_INIT
2822             int &status
2823             ALIAS:
2824             Astro::FITS::CFITSIO::fits_get_num_cols = 1
2825             fitsfilePtr::get_num_cols = 2
2826             OUTPUT:
2827             ncols
2828             status
2829              
2830             int
2831             ffgmng(mfptr,nmembers,status)
2832             fitsfile * mfptr
2833             long &nmembers = NO_INIT
2834             int &status
2835             ALIAS:
2836             Astro::FITS::CFITSIO::fits_get_num_groups = 1
2837             fitsfilePtr::get_num_groups = 2
2838             OUTPUT:
2839             nmembers
2840             status
2841              
2842             int
2843             ffthdu(fptr,hdunum,status)
2844             fitsfile * fptr
2845             int &hdunum = NO_INIT
2846             int &status
2847             ALIAS:
2848             Astro::FITS::CFITSIO::fits_get_num_hdus = 1
2849             fitsfilePtr::get_num_hdus = 2
2850             OUTPUT:
2851             hdunum
2852             status
2853              
2854             int
2855             ffgtnm(gfptr,nmembers,status)
2856             fitsfile * gfptr
2857             long &nmembers = NO_INIT
2858             int &status
2859             ALIAS:
2860             Astro::FITS::CFITSIO::fits_get_num_members = 1
2861             fitsfilePtr::get_num_members = 2
2862             OUTPUT:
2863             nmembers
2864             status
2865              
2866             int
2867             ffgnrw(fptr,nrows,status)
2868             fitsfile * fptr
2869             long &nrows = NO_INIT
2870             int &status
2871             ALIAS:
2872             Astro::FITS::CFITSIO::fits_get_num_rows = 1
2873             fitsfilePtr::get_num_rows = 2
2874             OUTPUT:
2875             nrows
2876             status
2877              
2878             int
2879             ffgnrwll(fptr,nrows,status)
2880             fitsfile * fptr
2881             LONGLONG &nrows = NO_INIT
2882             int &status
2883             ALIAS:
2884             Astro::FITS::CFITSIO::fits_get_num_rowsll = 1
2885             fitsfilePtr::get_num_rowsll = 2
2886             OUTPUT:
2887             nrows
2888             status
2889              
2890             int
2891             ffgrsz(fptr,nrows,status)
2892             fitsfile * fptr
2893             long &nrows = NO_INIT
2894             int &status
2895             ALIAS:
2896             Astro::FITS::CFITSIO::fits_get_rowsize = 1
2897             fitsfilePtr::get_rowsize = 2
2898             OUTPUT:
2899             nrows
2900             status
2901              
2902             int
2903             ffgstm(timestr,timeref,status)
2904             char * timestr = NO_INIT
2905             int timeref = NO_INIT
2906             int status
2907             ALIAS:
2908             Astro::FITS::CFITSIO::fits_get_system_time = 1
2909             CODE:
2910 0           timestr = get_mortalspace(20,TBYTE); /* YYYY-MM-DDThh:mm:ss */
2911 0           RETVAL=ffgstm(timestr,&timeref,&status);
2912 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),timeref);
2913             OUTPUT:
2914             timestr
2915             status
2916             RETVAL
2917              
2918             int
2919             ffgabc(tfields,tform,space,rowlen,tbcol,status)
2920             int tfields
2921             char ** tform
2922             int space
2923             long rowlen = NO_INIT
2924             long * tbcol = NO_INIT
2925             int status
2926             ALIAS:
2927             Astro::FITS::CFITSIO::fits_get_tbcol = 1
2928             CODE:
2929 0           tbcol = get_mortalspace(tfields,TLONG);
2930 0           RETVAL=ffgabc(tfields,tform,space,&rowlen,tbcol,&status);
2931 0           unpack1D(ST(4),tbcol,tfields,TLONG,-1);
2932 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),rowlen); /* value-added */
2933             OUTPUT:
2934             status
2935             RETVAL
2936              
2937             int
2938             fits_get_tile_dim(fptr, ndim, tilesize, status)
2939             FitsFile *fptr
2940             int ndim
2941             long *naxes = NO_INIT
2942             int status
2943             ALIAS:
2944             fitsfilePtr::get_tile_dim = 1
2945             CODE:
2946 0           naxes = get_mortalspace(ndim,TLONG);
2947 0           RETVAL=fits_get_tile_dim(fptr->fptr,ndim,naxes,&status);
2948 0 0         if (ST(2)!=&PL_sv_undef) unpack1D(ST(2),naxes,ndim,TLONG,fptr->perlyunpacking);
2949             OUTPUT:
2950             status
2951             RETVAL
2952              
2953             float
2954             ffvers(version)
2955             float version = NO_INIT
2956             ALIAS:
2957             Astro::FITS::CFITSIO::fits_get_version = 1
2958             CODE:
2959 1           RETVAL = ffvers(&version);
2960 1 50         if (ST(0) != &PL_sv_undef) sv_setnv(ST(0),version); /* value-added */
2961             OUTPUT:
2962             RETVAL
2963              
2964             int
2965             ffhdr2str(fptr, nocomments, header, nkeys, status)
2966             FitsFile *fptr
2967             int nocomments
2968             char *header = NO_INIT
2969             int nkeys = NO_INIT
2970             int status
2971             ALIAS:
2972             Astro::FITS::CFITSIO::fits_hdr2str = 1
2973             fitsfilePtr::hdr2str = 2
2974             CODE:
2975 0           RETVAL=fits_hdr2str(fptr->fptr,nocomments,NULL,0,&header,&nkeys,&status);
2976 0 0         if (ST(2)!=&PL_sv_undef) unpackScalar(ST(2), header, TSTRING);
2977 0 0         if (ST(3)!=&PL_sv_undef) unpackScalar(ST(3), &nkeys, TINT);
2978 0           fffree(header, &status);
2979             OUTPUT:
2980             status
2981             RETVAL
2982              
2983             int
2984             ffcnvthdr2str(fptr, nocomments, header, nkeys, status)
2985             FitsFile *fptr
2986             int nocomments
2987             char *header = NO_INIT
2988             int nkeys = NO_INIT
2989             int status
2990             ALIAS:
2991             Astro::FITS::CFITSIO::fits_convert_hdr2str = 1
2992             fitsfilePtr::convert_hdr2str = 2
2993             CODE:
2994 0           RETVAL=fits_hdr2str(fptr->fptr,nocomments,NULL,0,&header,&nkeys,&status);
2995 0 0         if (ST(2)!=&PL_sv_undef) unpackScalar(ST(2), header, TSTRING);
2996 0 0         if (ST(3)!=&PL_sv_undef) unpackScalar(ST(3), &nkeys, TINT);
2997 0           fffree(header, &status);
2998             OUTPUT:
2999             status
3000             RETVAL
3001              
3002             int
3003             ffitab(fptr,rowlen,nrows,tfields,ttype,tbcol,tform,tunit,extname,status)
3004             fitsfile * fptr
3005             LONGLONG rowlen
3006             LONGLONG nrows
3007             int tfields
3008             char ** ttype
3009             long * tbcol
3010             char ** tform
3011             char ** tunit
3012             char * extname
3013             int &status
3014             ALIAS:
3015             Astro::FITS::CFITSIO::fits_insert_atbl = 1
3016             fitsfilePtr::insert_atbl = 2
3017             OUTPUT:
3018             status
3019              
3020             int
3021             ffibin(fptr,nrows,tfields,ttype,tform,tunit,extname,pcount,status)
3022             fitsfile * fptr
3023             LONGLONG nrows
3024             int tfields
3025             char ** ttype
3026             char ** tform
3027             char ** tunit
3028             char * extname
3029             LONGLONG pcount
3030             int &status
3031             ALIAS:
3032             Astro::FITS::CFITSIO::fits_insert_btbl = 1
3033             fitsfilePtr::insert_btbl = 2
3034             OUTPUT:
3035             status
3036              
3037             int
3038             fficol(fptr,colnum,ttype,tform,status)
3039             fitsfile * fptr
3040             int colnum
3041             char * ttype
3042             char * tform
3043             int &status
3044             ALIAS:
3045             Astro::FITS::CFITSIO::fits_insert_col = 1
3046             fitsfilePtr::insert_col = 2
3047             OUTPUT:
3048             status
3049              
3050             int
3051             fficls(fptr,colnum,ncols,ttype,tform,status)
3052             fitsfile * fptr
3053             int colnum
3054             int ncols
3055             char ** ttype
3056             char ** tform
3057             int &status
3058             ALIAS:
3059             Astro::FITS::CFITSIO::fits_insert_cols = 1
3060             fitsfilePtr::insert_cols = 2
3061             OUTPUT:
3062             status
3063              
3064             int
3065             ffgtis(fptr,grpname,grouptype,status)
3066             fitsfile * fptr
3067             char * grpname
3068             int grouptype
3069             int &status
3070             ALIAS:
3071             Astro::FITS::CFITSIO::fits_insert_group = 1
3072             fitsfilePtr::insert_group = 2
3073             OUTPUT:
3074             status
3075              
3076             int
3077             ffiimg(fptr,bitpix,naxis,naxes,status)
3078             fitsfile * fptr
3079             int bitpix
3080             int naxis
3081             long * naxes
3082             int &status
3083             ALIAS:
3084             Astro::FITS::CFITSIO::fits_insert_img = 1
3085             fitsfilePtr::insert_img = 2
3086             OUTPUT:
3087             status
3088              
3089             int
3090             ffiimgll(fptr,bitpix,naxis,naxes,status)
3091             fitsfile * fptr
3092             int bitpix
3093             int naxis
3094             LONGLONG * naxes
3095             int &status
3096             ALIAS:
3097             Astro::FITS::CFITSIO::fits_insert_imgll = 1
3098             fitsfilePtr::insert_imgll = 2
3099             OUTPUT:
3100             status
3101              
3102             int
3103             ffikyu(fptr,keyname,comment,status)
3104             fitsfile * fptr
3105             char * keyname
3106             char * comment
3107             int &status
3108             ALIAS:
3109             Astro::FITS::CFITSIO::fits_insert_key_null = 1
3110             fitsfilePtr::insert_key_null = 2
3111             OUTPUT:
3112             status
3113              
3114             int
3115             ffikys(fptr,keyname,value,comment,status)
3116             fitsfile * fptr
3117             char * keyname
3118             char * value
3119             char * comment
3120             int &status
3121             ALIAS:
3122             Astro::FITS::CFITSIO::fits_insert_key_str = 1
3123             fitsfilePtr::insert_key_str = 2
3124             OUTPUT:
3125             status
3126              
3127             int
3128             ffikyl(fptr,keyname,value,comment,status)
3129             fitsfile * fptr
3130             char * keyname
3131             int value
3132             char * comment
3133             int &status
3134             ALIAS:
3135             Astro::FITS::CFITSIO::fits_insert_key_log = 1
3136             fitsfilePtr::insert_key_log = 2
3137             OUTPUT:
3138             status
3139              
3140             int
3141             ffikyj(fptr,keyname,value,comment,status)
3142             fitsfile * fptr
3143             char * keyname
3144             LONGLONG value
3145             char * comment
3146             int &status
3147             ALIAS:
3148             Astro::FITS::CFITSIO::fits_insert_key_lng = 1
3149             fitsfilePtr::insert_key_lng = 2
3150             OUTPUT:
3151             status
3152              
3153             int
3154             ffikye(fptr,keyname,value,decimals,comment,status)
3155             fitsfile * fptr
3156             char * keyname
3157             float value
3158             int decimals
3159             char * comment
3160             int &status
3161             ALIAS:
3162             Astro::FITS::CFITSIO::fits_insert_key_flt = 1
3163             fitsfilePtr::insert_key_flt = 2
3164             OUTPUT:
3165             status
3166              
3167             int
3168             ffikyf(fptr,keyname,value,decimals,comment,status)
3169             fitsfile * fptr
3170             char * keyname
3171             float value
3172             int decimals
3173             char * comment
3174             int &status
3175             ALIAS:
3176             Astro::FITS::CFITSIO::fits_insert_key_fixflt = 1
3177             fitsfilePtr::insert_key_fixflt = 2
3178             OUTPUT:
3179             status
3180              
3181             int
3182             ffikyd(fptr,keyname,value,decimals,comment,status)
3183             fitsfile * fptr
3184             char * keyname
3185             double value
3186             int decimals
3187             char * comment
3188             int &status
3189             ALIAS:
3190             Astro::FITS::CFITSIO::fits_insert_key_dbl = 1
3191             fitsfilePtr::insert_key_dbl = 2
3192             OUTPUT:
3193             status
3194              
3195             int
3196             ffikyg(fptr,keyname,value,decimals,comment,status)
3197             fitsfile * fptr
3198             char * keyname
3199             double value
3200             int decimals
3201             char * comment
3202             int &status
3203             ALIAS:
3204             Astro::FITS::CFITSIO::fits_insert_key_fixdbl = 1
3205             fitsfilePtr::insert_key_fixdbl = 2
3206             OUTPUT:
3207             status
3208              
3209             int
3210             ffikyc(fptr,keyname,value,decimals,comment,status)
3211             fitsfile * fptr
3212             char * keyname
3213             float * value
3214             int decimals
3215             char * comment
3216             int &status
3217             ALIAS:
3218             Astro::FITS::CFITSIO::fits_insert_key_cmp = 1
3219             fitsfilePtr::insert_key_cmp = 2
3220             OUTPUT:
3221             status
3222              
3223             int
3224             ffikfc(fptr,keyname,value,decimals,comment,status)
3225             fitsfile * fptr
3226             char * keyname
3227             float * value
3228             int decimals
3229             char * comment
3230             int &status
3231             ALIAS:
3232             Astro::FITS::CFITSIO::fits_insert_key_fixcmp = 1
3233             fitsfilePtr::insert_key_fixcmp = 2
3234             OUTPUT:
3235             status
3236              
3237             int
3238             ffikym(fptr,keyname,value,decimals,comment,status)
3239             fitsfile * fptr
3240             char * keyname
3241             double * value
3242             int decimals
3243             char * comment
3244             int &status
3245             ALIAS:
3246             Astro::FITS::CFITSIO::fits_insert_key_dblcmp = 1
3247             fitsfilePtr::insert_key_dblcmp = 2
3248             OUTPUT:
3249             status
3250              
3251             int
3252             ffikfm(fptr,keyname,value,decimals,comment,status)
3253             fitsfile * fptr
3254             char * keyname
3255             double * value
3256             int decimals
3257             char * comment
3258             int &status
3259             ALIAS:
3260             Astro::FITS::CFITSIO::fits_insert_key_fixdblcmp = 1
3261             fitsfilePtr::insert_key_fixdblcmp = 2
3262             OUTPUT:
3263             status
3264              
3265             int
3266             ffirec(fptr,keynum,card,status)
3267             fitsfile * fptr
3268             int keynum
3269             char * card
3270             int &status
3271             ALIAS:
3272             Astro::FITS::CFITSIO::fits_insert_record = 1
3273             fitsfilePtr::insert_record = 2
3274             OUTPUT:
3275             status
3276              
3277             int
3278             ffikey(fptr,card,status)
3279             fitsfile * fptr
3280             char * card
3281             int &status
3282             ALIAS:
3283             Astro::FITS::CFITSIO::fits_insert_card = 1
3284             fitsfilePtr::insert_card = 2
3285             OUTPUT:
3286             status
3287              
3288             int
3289             ffirow(fptr,firstrow,nrows,status)
3290             fitsfile * fptr
3291             LONGLONG firstrow
3292             LONGLONG nrows
3293             int &status
3294             ALIAS:
3295             Astro::FITS::CFITSIO::fits_insert_rows = 1
3296             fitsfilePtr::insert_rows = 2
3297             OUTPUT:
3298             status
3299              
3300             int
3301             ffkeyn(keyroot,value,keyname,status)
3302             char * keyroot
3303             int value
3304             char * keyname = NO_INIT
3305             int status
3306             ALIAS:
3307             Astro::FITS::CFITSIO::fits_make_keyn = 1
3308             CODE:
3309 0           keyname = get_mortalspace(FLEN_KEYWORD,TBYTE);
3310 0           RETVAL=ffkeyn(keyroot,value,keyname,&status);
3311             OUTPUT:
3312             keyname
3313             status
3314             RETVAL
3315              
3316             int
3317             ffnkey(value,keyroot,keyname,status)
3318             int value
3319             char * keyroot
3320             char * keyname = NO_INIT
3321             int status
3322             ALIAS:
3323             Astro::FITS::CFITSIO::fits_make_nkey = 1
3324             CODE:
3325 0           keyname = get_mortalspace(FLEN_KEYWORD,TBYTE);
3326 0           RETVAL=ffnkey(value,keyroot,keyname,&status);
3327             OUTPUT:
3328             keyname
3329             status
3330             RETVAL
3331              
3332             int
3333             ffmkky(keyname, value, comm, card, status)
3334             const char * keyname
3335             char * value
3336             const char * comm
3337             char * card = NO_INIT
3338             int status
3339             ALIAS:
3340             Astro::FITS::CFITSIO::fits_make_key = 1
3341             CODE:
3342 0           card = get_mortalspace(FLEN_CARD, TBYTE);
3343 0           RETVAL=ffmkky(keyname, value, comm, card, &status);
3344             OUTPUT:
3345             card
3346             status
3347             RETVAL
3348              
3349             int
3350             ffgtmg(infptr,outfptr,mgopt,status)
3351             fitsfile * infptr
3352             fitsfile * outfptr
3353             int mgopt
3354             int &status
3355             ALIAS:
3356             Astro::FITS::CFITSIO::fits_merge_groups = 1
3357             fitsfilePtr::merge_groups = 2
3358             OUTPUT:
3359             status
3360              
3361             int
3362             ffmbyt(fptr, bytepos, err_mode, status)
3363             fitsfile * fptr
3364             LONGLONG bytepos
3365             int err_mode
3366             int &status
3367             ALIAS:
3368             Astro::FITS::CFITSIO::fits_seek = 1
3369             fitsfilePtr::seek = 2
3370             OUTPUT:
3371             status
3372              
3373             int
3374             ffmcrd(fptr,keyname,card,status)
3375             fitsfile * fptr
3376             char * keyname
3377             char * card
3378             int &status
3379             ALIAS:
3380             Astro::FITS::CFITSIO::fits_modify_card = 1
3381             fitsfilePtr::modify_card = 2
3382             OUTPUT:
3383             status
3384              
3385             int
3386             ffmcom(fptr,keyname,comment,status)
3387             fitsfile * fptr
3388             char * keyname
3389             char * comment
3390             int &status
3391             ALIAS:
3392             Astro::FITS::CFITSIO::fits_modify_comment = 1
3393             fitsfilePtr::modify_comment = 2
3394             OUTPUT:
3395             status
3396              
3397             int
3398             ffmkyu(fptr,keyname,comment,status)
3399             fitsfile * fptr
3400             char * keyname
3401             char * comment
3402             int &status
3403             ALIAS:
3404             Astro::FITS::CFITSIO::fits_modify_key_null = 1
3405             fitsfilePtr::modify_key_null = 2
3406             OUTPUT:
3407             status
3408              
3409             int
3410             ffmkys(fptr,keyname,value,comment,status)
3411             fitsfile * fptr
3412             char * keyname
3413             char * value
3414             char * comment
3415             int &status
3416             ALIAS:
3417             Astro::FITS::CFITSIO::fits_modify_key_str = 1
3418             fitsfilePtr::modify_key_str = 2
3419             OUTPUT:
3420             status
3421              
3422             int
3423             ffmkyl(fptr,keyname,value,comment,status)
3424             fitsfile * fptr
3425             char * keyname
3426             int value
3427             char * comment
3428             int &status
3429             ALIAS:
3430             Astro::FITS::CFITSIO::fits_modify_key_log = 1
3431             fitsfilePtr::modify_key_log = 2
3432             OUTPUT:
3433             status
3434              
3435             int
3436             ffmkyj(fptr,keyname,value,comment,status)
3437             fitsfile * fptr
3438             char * keyname
3439             LONGLONG value
3440             char * comment
3441             int &status
3442             ALIAS:
3443             Astro::FITS::CFITSIO::fits_modify_key_lng = 1
3444             fitsfilePtr::modify_key_lng = 2
3445             OUTPUT:
3446             status
3447              
3448             int
3449             ffmkye(fptr,keyname,value,decimals,comment,status)
3450             fitsfile * fptr
3451             char * keyname
3452             float value
3453             int decimals
3454             char * comment
3455             int &status
3456             ALIAS:
3457             Astro::FITS::CFITSIO::fits_modify_key_flt = 1
3458             fitsfilePtr::modify_key_flt = 2
3459             OUTPUT:
3460             status
3461              
3462             int
3463             ffmkyf(fptr,keyname,value,decimals,comment,status)
3464             fitsfile * fptr
3465             char * keyname
3466             float value
3467             int decimals
3468             char * comment
3469             int &status
3470             ALIAS:
3471             Astro::FITS::CFITSIO::fits_modify_key_fixflt = 1
3472             fitsfilePtr::modify_key_fixflt = 2
3473             OUTPUT:
3474             status
3475              
3476             int
3477             ffmkyd(fptr,keyname,value,decimals,comment,status)
3478             fitsfile * fptr
3479             char * keyname
3480             double value
3481             int decimals
3482             char * comment
3483             int &status
3484             ALIAS:
3485             Astro::FITS::CFITSIO::fits_modify_key_dbl = 1
3486             fitsfilePtr::modify_key_dbl = 2
3487             OUTPUT:
3488             status
3489              
3490             int
3491             ffmkyg(fptr,keyname,value,decimals,comment,status)
3492             fitsfile * fptr
3493             char * keyname
3494             double value
3495             int decimals
3496             char * comment
3497             int &status
3498             ALIAS:
3499             Astro::FITS::CFITSIO::fits_modify_key_fixdbl = 1
3500             fitsfilePtr::modify_key_fixdbl = 2
3501             OUTPUT:
3502             status
3503              
3504             int
3505             ffmkyc(fptr,keyname,value,decimals,comment,status)
3506             fitsfile * fptr
3507             char * keyname
3508             float * value
3509             int decimals
3510             char * comment
3511             int &status
3512             ALIAS:
3513             Astro::FITS::CFITSIO::fits_modify_key_cmp = 1
3514             fitsfilePtr::modify_key_cmp = 2
3515             OUTPUT:
3516             status
3517              
3518             int
3519             ffmkfc(fptr,keyname,value,decimals,comment,status)
3520             fitsfile * fptr
3521             char * keyname
3522             float * value
3523             int decimals
3524             char * comment
3525             int &status
3526             ALIAS:
3527             Astro::FITS::CFITSIO::fits_modify_key_fixcmp = 1
3528             fitsfilePtr::modify_key_fixcmp = 2
3529             OUTPUT:
3530             status
3531              
3532             int
3533             ffmkym(fptr,keyname,value,decimals,comment,status)
3534             fitsfile * fptr
3535             char * keyname
3536             double * value
3537             int decimals
3538             char * comment
3539             int &status
3540             ALIAS:
3541             Astro::FITS::CFITSIO::fits_modify_key_dblcmp = 1
3542             fitsfilePtr::modify_key_dblcmp = 2
3543             OUTPUT:
3544             status
3545              
3546             int
3547             ffmkfm(fptr,keyname,value,decimals,comment,status)
3548             fitsfile * fptr
3549             char * keyname
3550             double * value
3551             int decimals
3552             char * comment
3553             int &status
3554             ALIAS:
3555             Astro::FITS::CFITSIO::fits_modify_key_fixdblcmp = 1
3556             fitsfilePtr::modify_key_fixdblcmp = 2
3557             OUTPUT:
3558             status
3559              
3560             int
3561             ffmnam(fptr,oldname,newname,status)
3562             fitsfile * fptr
3563             char * oldname
3564             char * newname
3565             int &status
3566             ALIAS:
3567             Astro::FITS::CFITSIO::fits_modify_name = 1
3568             fitsfilePtr::modify_name = 2
3569             OUTPUT:
3570             status
3571              
3572             int
3573             ffmrec(fptr,keynum,card,status)
3574             fitsfile * fptr
3575             int keynum
3576             char * card
3577             int &status
3578             ALIAS:
3579             Astro::FITS::CFITSIO::fits_modify_record = 1
3580             fitsfilePtr::modify_record = 2
3581             OUTPUT:
3582             status
3583              
3584             int
3585             ffmvec(fptr,colnum,newveclen,status)
3586             fitsfile * fptr
3587             int colnum
3588             LONGLONG newveclen
3589             int &status
3590             ALIAS:
3591             Astro::FITS::CFITSIO::fits_modify_vector_len = 1
3592             fitsfilePtr::modify_vector_len = 2
3593             OUTPUT:
3594             status
3595              
3596             int
3597             ffmahd(fptr,hdunum,hdutype,status)
3598             fitsfile * fptr
3599             int hdunum
3600             int hdutype = NO_INIT
3601             int status
3602             ALIAS:
3603             Astro::FITS::CFITSIO::fits_movabs_hdu = 1
3604             fitsfilePtr::movabs_hdu = 2
3605             CODE:
3606 1           RETVAL = ffmahd(fptr,hdunum,&hdutype,&status);
3607 1 50         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),hdutype);
3608             OUTPUT:
3609             status
3610             RETVAL
3611              
3612             int
3613             ffmnhd(fptr,hdutype,extname,extvers,status)
3614             fitsfile * fptr
3615             int hdutype
3616             char * extname
3617             int extvers
3618             int &status
3619             ALIAS:
3620             Astro::FITS::CFITSIO::fits_movnam_hdu = 1
3621             fitsfilePtr::movnam_hdu = 2
3622             OUTPUT:
3623             status
3624              
3625             int
3626             ffmrhd(fptr,nmove,hdutype,status)
3627             fitsfile * fptr
3628             int nmove
3629             int hdutype = NO_INIT
3630             int status
3631             ALIAS:
3632             Astro::FITS::CFITSIO::fits_movrel_hdu = 1
3633             fitsfilePtr::movrel_hdu = 2
3634             CODE:
3635 2           RETVAL = ffmrhd(fptr,nmove,&hdutype,&status);
3636 2 50         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),hdutype);
3637             OUTPUT:
3638             status
3639             RETVAL
3640              
3641             int
3642             ffnchk(fptr,status)
3643             fitsfile * fptr
3644             int &status
3645             ALIAS:
3646             Astro::FITS::CFITSIO::fits_null_check = 1
3647             fitsfilePtr::null_check = 2
3648             OUTPUT:
3649             status
3650              
3651             FitsFile*
3652             open_file(filename,iomode,status)
3653             char * filename
3654             int iomode
3655             int status
3656             ALIAS:
3657             Astro::FITS::CFITSIO::open_diskfile = 1
3658             Astro::FITS::CFITSIO::open_data = 2
3659             Astro::FITS::CFITSIO::open_image = 3
3660             Astro::FITS::CFITSIO::open_table = 4
3661             PREINIT:
3662             FitsFile * fptr;
3663             static int (*fits_open[5])(fitsfile **, const char *, int , int *) = { ffopen, ffdkopn, ffdopn, ffiopn, fftopn };
3664             CODE:
3665 5 50         if (!filename) /* undef passed */
3666 0           filename = "";
3667 5           NewFitsFile(fptr);
3668 5 100         if (fits_open[ix](&(fptr->fptr),filename,iomode,&status))
3669 1           AbortFitsFile(fptr);
3670 5           RETVAL = fptr;
3671             OUTPUT:
3672             RETVAL
3673             status
3674              
3675             int
3676             ffopen(fptr,filename,iomode,status)
3677             FitsFile * fptr = NO_INIT
3678             char * filename
3679             int iomode
3680             int status
3681             ALIAS:
3682             Astro::FITS::CFITSIO::fits_open_file = 1
3683             CODE:
3684 13 50         if (!filename) /* undef passed */
3685 0           filename = "";
3686 13           NewFitsFile(fptr);
3687 13           RETVAL = ffopen(&(fptr->fptr),filename,iomode,&status);
3688 13 100         if (RETVAL)
3689 2           AbortFitsFile(fptr);
3690             OUTPUT:
3691             RETVAL
3692             fptr
3693             status
3694              
3695             int
3696             ffdkopn(fptr,filename,iomode,status)
3697             FitsFile * fptr = NO_INIT
3698             char * filename
3699             int iomode
3700             int status
3701             ALIAS:
3702             Astro::FITS::CFITSIO::fits_open_diskfile = 1
3703             CODE:
3704 0 0         if (!filename) /* undef passed */
3705 0           filename = "";
3706 0           NewFitsFile(fptr);
3707 0           RETVAL = ffdkopn(&(fptr->fptr),filename,iomode,&status);
3708 0 0         if (RETVAL)
3709 0           AbortFitsFile(fptr);
3710             OUTPUT:
3711             RETVAL
3712             fptr
3713             status
3714              
3715             int
3716             ffdopn(fptr,filename,iomode,status)
3717             FitsFile * fptr = NO_INIT
3718             char * filename
3719             int iomode
3720             int status
3721             ALIAS:
3722             Astro::FITS::CFITSIO::fits_open_data = 1
3723             CODE:
3724 0 0         if (!filename) /* undef passed */
3725 0           filename = "";
3726 0           NewFitsFile(fptr);
3727 0           RETVAL = ffdopn(&(fptr->fptr),filename,iomode,&status);
3728 0 0         if (RETVAL)
3729 0           AbortFitsFile(fptr);
3730             OUTPUT:
3731             RETVAL
3732             fptr
3733             status
3734              
3735             int
3736             ffiopn(fptr,filename,iomode,status)
3737             FitsFile * fptr = NO_INIT
3738             char * filename
3739             int iomode
3740             int status
3741             ALIAS:
3742             Astro::FITS::CFITSIO::fits_open_image = 1
3743             CODE:
3744 0 0         if (!filename) /* undef passed */
3745 0           filename = "";
3746 0           NewFitsFile(fptr);
3747 0           RETVAL = ffiopn(&(fptr->fptr),filename,iomode,&status);
3748 0 0         if (RETVAL)
3749 0           AbortFitsFile(fptr);
3750             OUTPUT:
3751             RETVAL
3752             fptr
3753             status
3754              
3755             int
3756             fftopn(fptr,filename,iomode,status)
3757             FitsFile * fptr = NO_INIT
3758             char * filename
3759             int iomode
3760             int status
3761             ALIAS:
3762             Astro::FITS::CFITSIO::fits_open_table = 1
3763             CODE:
3764 0 0         if (!filename) /* undef passed */
3765 0           filename = "";
3766 0           NewFitsFile(fptr);
3767 0           RETVAL = fftopn(&(fptr->fptr),filename,iomode,&status);
3768 0 0         if (RETVAL)
3769 0           AbortFitsFile(fptr);
3770             OUTPUT:
3771             RETVAL
3772             fptr
3773             status
3774              
3775             int
3776             ffeopn(fptr,filename,iomode,extlist,hdutype,status)
3777             FitsFile * fptr = NO_INIT
3778             char * filename
3779             int iomode
3780             char * extlist
3781             int hdutype = NO_INIT
3782             int status
3783             ALIAS:
3784             Astro::FITS::CFITSIO::fits_open_extlist = 1
3785             CODE:
3786 0 0         if (!filename) /* undef passed */
3787 0           filename = "";
3788 0           NewFitsFile(fptr);
3789 0           RETVAL = ffeopn(&(fptr->fptr),filename,iomode,extlist,&hdutype,&status);
3790 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),hdutype);
3791 0 0         if (RETVAL)
3792 0           AbortFitsFile(fptr);
3793             OUTPUT:
3794             RETVAL
3795             fptr
3796             status
3797              
3798             int
3799             ffgtop(mfptr,group,gfptr,status)
3800             fitsfile * mfptr
3801             int group
3802             FitsFile * gfptr = NO_INIT
3803             int status
3804             ALIAS:
3805             Astro::FITS::CFITSIO::fits_open_group = 1
3806             fitsfilePtr::open_group = 2
3807             CODE:
3808 0           NewFitsFile(gfptr);
3809 0           RETVAL = ffgtop(mfptr,group,&(gfptr->fptr),&status);
3810 0 0         if (RETVAL)
3811 0           AbortFitsFile(gfptr);
3812             OUTPUT:
3813             RETVAL
3814             gfptr
3815             status
3816              
3817             int
3818             ffgmop(gfptr,member,mfptr,status)
3819             fitsfile * gfptr
3820             long member
3821             FitsFile * mfptr = NO_INIT
3822             int status
3823             ALIAS:
3824             Astro::FITS::CFITSIO::fits_open_member = 1
3825             fitsfilePtr::open_member = 2
3826             CODE:
3827 0           NewFitsFile(mfptr);
3828 0           RETVAL = ffgmop(gfptr,member,&(mfptr->fptr),&status);
3829 0 0         if (RETVAL)
3830 0           AbortFitsFile(mfptr);
3831             OUTPUT:
3832             status
3833             mfptr
3834             RETVAL
3835              
3836             int
3837             ffextn(filename,hdunum,status)
3838             char * filename
3839             int &hdunum = NO_INIT
3840             int &status
3841             ALIAS:
3842             Astro::FITS::CFITSIO::fits_parse_extnum = 1
3843             OUTPUT:
3844             hdunum
3845             status
3846              
3847             int
3848             ffiurl(filename,urltype,infile,outfile,extspec,filter,binspec,colspec,status)
3849             char * filename
3850             char * urltype = NO_INIT
3851             char * infile = NO_INIT
3852             char * outfile = NO_INIT
3853             char * extspec = NO_INIT
3854             char * filter = NO_INIT
3855             char * binspec = NO_INIT
3856             char * colspec = NO_INIT
3857             int status
3858             ALIAS:
3859             Astro::FITS::CFITSIO::fits_parse_input_url = 1
3860             CODE:
3861 0           urltype = get_mortalspace(FLEN_FILENAME,TBYTE);
3862 0           infile = get_mortalspace(FLEN_FILENAME,TBYTE);
3863 0           outfile = get_mortalspace(FLEN_FILENAME,TBYTE);
3864 0           extspec = get_mortalspace(FLEN_FILENAME,TBYTE);
3865 0           filter = get_mortalspace(FLEN_FILENAME,TBYTE);
3866 0           binspec = get_mortalspace(FLEN_FILENAME,TBYTE);
3867 0           colspec = get_mortalspace(FLEN_FILENAME,TBYTE);
3868 0           RETVAL = ffiurl(filename,urltype,infile,outfile,extspec,filter,binspec,colspec,&status);
3869             OUTPUT:
3870             urltype
3871             infile
3872             outfile
3873             extspec
3874             filter
3875             binspec
3876             colspec
3877             status
3878             RETVAL
3879              
3880             int
3881             ffifile(filename,filetype,infile,outfile,extspec,filter,binspec,colspec,pixspec,status)
3882             char * filename
3883             char * filetype = NO_INIT
3884             char * infile = NO_INIT
3885             char * outfile = NO_INIT
3886             char * extspec = NO_INIT
3887             char * filter = NO_INIT
3888             char * binspec = NO_INIT
3889             char * colspec = NO_INIT
3890             char * pixspec = NO_INIT
3891             int status
3892             ALIAS:
3893             Astro::FITS::CFITSIO::fits_parse_input_filename = 1
3894             CODE:
3895 0           filetype = get_mortalspace(FLEN_FILENAME,TBYTE);
3896 0           infile = get_mortalspace(FLEN_FILENAME,TBYTE);
3897 0           outfile = get_mortalspace(FLEN_FILENAME,TBYTE);
3898 0           extspec = get_mortalspace(FLEN_FILENAME,TBYTE);
3899 0           filter = get_mortalspace(FLEN_FILENAME,TBYTE);
3900 0           binspec = get_mortalspace(FLEN_FILENAME,TBYTE);
3901 0           colspec = get_mortalspace(FLEN_FILENAME,TBYTE);
3902 0           pixspec = get_mortalspace(FLEN_FILENAME,TBYTE);
3903 0           RETVAL = ffifile(filename,filetype,infile,outfile,extspec,filter,binspec,colspec,pixspec,&status);
3904             OUTPUT:
3905             filetype
3906             infile
3907             outfile
3908             extspec
3909             filter
3910             binspec
3911             colspec
3912             pixspec
3913             status
3914             RETVAL
3915              
3916             int
3917             fits_copy_cell2image(infptr, outfptr, colname, rownum, status)
3918             fitsfile* infptr
3919             fitsfile* outfptr
3920             char* colname
3921             long rownum
3922             int &status
3923             ALIAS:
3924             fitsfilePtr::copy_cell2image = 1
3925             OUTPUT:
3926             status
3927              
3928             int
3929             fits_copy_image2cell(infptr, outfptr, colname, rownum, copykeyflag, status)
3930             fitsfile* infptr
3931             fitsfile* outfptr
3932             char* colname
3933             long rownum
3934             int copykeyflag
3935             int &status
3936             ALIAS:
3937             fitsfilePtr::copy_image2cell = 1
3938             OUTPUT:
3939             status
3940              
3941             int
3942             ffrwrg(rowlist, maxrows, maxranges, numranges, rangemin, rangemax, status)
3943             char * rowlist
3944             LONGLONG maxrows
3945             int maxranges
3946             int numranges = NO_INIT
3947             long * rangemin = NO_INIT
3948             long * rangemax = NO_INIT
3949             int status
3950             ALIAS:
3951             Astro::FITS::CFITSIO::fits_parse_range = 1
3952             CODE:
3953 0 0         if (ST(4)!=&PL_sv_undef || ST(5)!=&PL_sv_undef) {
    0          
3954 0           rangemin = get_mortalspace(maxranges,TLONG);
3955 0           rangemax = get_mortalspace(maxranges,TLONG);
3956             }
3957             else {
3958 0           rangemin = rangemax = 0;
3959 0           maxranges = 0;
3960             }
3961              
3962 0           RETVAL=ffrwrg(rowlist, maxrows, maxranges, &numranges,
3963             rangemin, rangemax, &status);
3964 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),numranges);
3965 0 0         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),rangemin,numranges,TLONG,-1);
3966 0 0         if (ST(5)!=&PL_sv_undef) unpack1D(ST(5),rangemax,numranges,TLONG,-1);
3967             OUTPUT:
3968             status
3969             RETVAL
3970              
3971             int
3972             ffrwrgll(rowlist, maxrows, maxranges, numranges, rangemin, rangemax, status)
3973             char * rowlist
3974             LONGLONG maxrows
3975             int maxranges
3976             int numranges = NO_INIT
3977             LONGLONG * rangemin = NO_INIT
3978             LONGLONG * rangemax = NO_INIT
3979             int status
3980             ALIAS:
3981             Astro::FITS::CFITSIO::fits_parse_rangell = 1
3982             CODE:
3983 0 0         if (ST(4)!=&PL_sv_undef || ST(5)!=&PL_sv_undef) {
    0          
3984 0           rangemin = get_mortalspace(maxranges,TLONG);
3985 0           rangemax = get_mortalspace(maxranges,TLONG);
3986             }
3987             else {
3988 0           rangemin = rangemax = 0;
3989 0           maxranges = 0;
3990             }
3991              
3992 0           RETVAL=ffrwrgll(rowlist, maxrows, maxranges, &numranges,
3993             rangemin, rangemax, &status);
3994 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),numranges);
3995 0 0         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),rangemin,numranges,TLONGLONG,-1);
3996 0 0         if (ST(5)!=&PL_sv_undef) unpack1D(ST(5),rangemax,numranges,TLONGLONG,-1);
3997             OUTPUT:
3998             status
3999             RETVAL
4000              
4001             int
4002             ffrtnm(url,rootname,status)
4003             char * url
4004             char * rootname = NO_INIT
4005             int status
4006             ALIAS:
4007             Astro::FITS::CFITSIO::fits_parse_rootname = 1
4008             CODE:
4009 0           rootname = get_mortalspace(FLEN_FILENAME,TBYTE);
4010 0           RETVAL = ffrtnm(url,rootname,&status);
4011             OUTPUT:
4012             rootname
4013             status
4014             RETVAL
4015              
4016             int
4017             ffgthd(templt,card,keytype,status)
4018             char * templt
4019             char * card = NO_INIT
4020             int keytype = NO_INIT
4021             int status
4022             ALIAS:
4023             Astro::FITS::CFITSIO::fits_parse_template = 1
4024             CODE:
4025 0           card = get_mortalspace(FLEN_CARD,TBYTE);
4026 0           RETVAL = ffgthd(templt,card,&keytype,&status);
4027 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),keytype);
4028             OUTPUT:
4029             card
4030             status
4031             RETVAL
4032              
4033             int
4034             fits_translate_keyword(inrec, outrec, inpatterns, outpatterns, npat, n_value, n_offset, n_range, pat_num, i, j, m, n, status)
4035             char* inrec
4036             char* outrec = NO_INIT
4037             char** inpatterns
4038             char** outpatterns
4039             int npat
4040             int n_value
4041             int n_offset
4042             int n_range
4043             int pat_num = NO_INIT
4044             int i = NO_INIT
4045             int j = NO_INIT
4046             int m = NO_INIT
4047             int n = NO_INIT
4048             int status
4049             PREINIT:
4050             char* (*patterns)[2];
4051             int ii;
4052             CODE:
4053 0           patterns = malloc(npat * sizeof(*patterns));
4054 0 0         for (ii=0; ii
4055 0           patterns[ii][0] = inpatterns[ii];
4056 0           patterns[ii][1] = outpatterns[ii];
4057             }
4058 0           outrec = get_mortalspace(strlen(inrec)+1,TBYTE);
4059 0           RETVAL = fits_translate_keyword(inrec,
4060             outrec,
4061             patterns,
4062             npat,
4063             n_value,
4064             n_offset,
4065             n_range,
4066             &pat_num,
4067             &i,
4068             &j,
4069             &m,
4070             &n,
4071             &status);
4072 0 0         if (ST(1) != &PL_sv_undef) sv_setpv(ST(1),outrec);
4073 0 0         if (ST(8) != &PL_sv_undef) sv_setiv(ST(8),pat_num);
4074 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),i);
4075 0 0         if (ST(10) != &PL_sv_undef) sv_setiv(ST(10),j);
4076 0 0         if (ST(11) != &PL_sv_undef) sv_setiv(ST(11),m);
4077 0 0         if (ST(12) != &PL_sv_undef) sv_setiv(ST(12),n);
4078 0           free(patterns);
4079             OUTPUT:
4080             status
4081             RETVAL
4082              
4083             int
4084             fits_translate_keywords(infptr, outfptr, firstkey, inpatterns, outpatterns, npat, n_value, n_offset, n_range, status)
4085             FitsFile* infptr
4086             FitsFile* outfptr
4087             int firstkey
4088             char** inpatterns
4089             char** outpatterns
4090             int npat
4091             int n_value
4092             int n_offset
4093             int n_range
4094             int status
4095             ALIAS:
4096             fitsfilePtr::translate_keywords = 1
4097             PREINIT:
4098             char* (*patterns)[2];
4099             int ii;
4100             CODE:
4101 0           patterns = malloc(npat * sizeof(*patterns));
4102 0 0         for (ii=0; ii
4103 0           patterns[ii][0] = inpatterns[ii];
4104 0           patterns[ii][1] = outpatterns[ii];
4105             }
4106 0           RETVAL = fits_translate_keywords(infptr->fptr,
4107             outfptr->fptr,
4108             firstkey,
4109             patterns,
4110             npat,
4111             n_value,
4112             n_offset,
4113             n_range,
4114             &status);
4115 0           free(patterns);
4116             OUTPUT:
4117             status
4118             RETVAL
4119              
4120             int
4121             ffpsvc(card,value,comment,status)
4122             char * card
4123             char * value = NO_INIT
4124             char * comment = NO_INIT
4125             int status
4126             ALIAS:
4127             Astro::FITS::CFITSIO::fits_parse_value = 1
4128             CODE:
4129 0           value = get_mortalspace(FLEN_VALUE,TBYTE);
4130 0           comment = get_mortalspace(FLEN_COMMENT,TBYTE);
4131 0           RETVAL = ffpsvc(card,value,comment,&status);
4132             OUTPUT:
4133             value
4134             comment
4135             status
4136             RETVAL
4137              
4138             int
4139             ffwldp(xpix,ypix,xrefval,yrefval,xrefpix,yrefpix,xinc,yinc,rot,coordtype,xpos,ypos,status)
4140             double xpix
4141             double ypix
4142             double xrefval
4143             double yrefval
4144             double xrefpix
4145             double yrefpix
4146             double xinc
4147             double yinc
4148             double rot
4149             char * coordtype
4150             double &xpos = NO_INIT
4151             double &ypos = NO_INIT
4152             int &status
4153             ALIAS:
4154             Astro::FITS::CFITSIO::fits_pix_to_world = 1
4155             OUTPUT:
4156             xpos
4157             ypos
4158             status
4159              
4160             int
4161             ffg2db(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4162             FitsFile * fptr
4163             long group
4164             byte nulval
4165             LONGLONG dim1
4166             LONGLONG naxis1
4167             LONGLONG naxis2
4168             byte * array = NO_INIT
4169             int anynul = NO_INIT
4170             int status
4171             ALIAS:
4172             Astro::FITS::CFITSIO::fits_read_2d_byt = 1
4173             fitsfilePtr::read_2d_byt = 2
4174             PREINIT:
4175             LONGLONG dims[2];
4176             CODE:
4177 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4178 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TBYTE));
    0          
4179 0 0         RETVAL=ffg2db(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(byte*)SvPV(ST(6),PL_na),&anynul,&status);
4180             }
4181             else {
4182 0           dims[0]=naxis2; dims[1] = dim1;
4183 0           array = get_mortalspace(naxis2*dim1,TBYTE);
4184 0           RETVAL=ffg2db(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4185 0           unpack2D(ST(6),array,dims,TBYTE,fptr->perlyunpacking);
4186             }
4187 0 0         if (ST(7)!=&PL_sv_undef) sv_setiv(ST(7),anynul);
4188             OUTPUT:
4189             status
4190             RETVAL
4191              
4192             int
4193             ffg2dsb(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4194             FitsFile * fptr
4195             long group
4196             byte nulval
4197             LONGLONG dim1
4198             LONGLONG naxis1
4199             LONGLONG naxis2
4200             signed char* array = NO_INIT
4201             int anynul = NO_INIT
4202             int status
4203             ALIAS:
4204             Astro::FITS::CFITSIO::fits_read_2d_sbyt = 1
4205             fitsfilePtr::read_2d_sbyt = 2
4206             PREINIT:
4207             LONGLONG dims[2];
4208             CODE:
4209 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4210 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TSBYTE));
    0          
4211 0 0         RETVAL=ffg2dsb(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(signed char*)SvPV(ST(6),PL_na),&anynul,&status);
4212             }
4213             else {
4214 0           dims[0]=naxis2; dims[1] = dim1;
4215 0           array = get_mortalspace(naxis2*dim1,TSBYTE);
4216 0           RETVAL=ffg2dsb(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4217 0           unpack2D(ST(6),array,dims,TSBYTE,fptr->perlyunpacking);
4218             }
4219 0 0         if (ST(7)!=&PL_sv_undef) sv_setiv(ST(7),anynul);
4220             OUTPUT:
4221             status
4222             RETVAL
4223              
4224             int
4225             ffg2dui(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4226             FitsFile * fptr
4227             long group
4228             unsigned short nulval
4229             LONGLONG dim1
4230             LONGLONG naxis1
4231             LONGLONG naxis2
4232             unsigned short * array = NO_INIT
4233             int anynul = NO_INIT
4234             int status
4235             ALIAS:
4236             Astro::FITS::CFITSIO::fits_read_2d_usht = 1
4237             fitsfilePtr::read_2d_usht = 2
4238             PREINIT:
4239             LONGLONG dims[2];
4240             CODE:
4241 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4242 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TUSHORT));
    0          
4243 0 0         RETVAL=ffg2dui(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(unsigned short*)SvPV(ST(6),PL_na),&anynul,&status);
4244             }
4245             else {
4246 0           dims[0]=naxis2; dims[1] = dim1;
4247 0           array = get_mortalspace(naxis2*dim1,TUSHORT);
4248 0           RETVAL=ffg2dui(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4249 0           unpack2D(ST(6),array,dims,TUSHORT,fptr->perlyunpacking);
4250             }
4251 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
4252             OUTPUT:
4253             status
4254             RETVAL
4255              
4256             int
4257             ffg2di(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4258             FitsFile * fptr
4259             long group
4260             short nulval
4261             LONGLONG dim1
4262             LONGLONG naxis1
4263             LONGLONG naxis2
4264             short * array = NO_INIT
4265             int anynul = NO_INIT
4266             int status
4267             ALIAS:
4268             Astro::FITS::CFITSIO::fits_read_2d_sht = 1
4269             fitsfilePtr::read_2d_sht = 2
4270             PREINIT:
4271             LONGLONG dims[2];
4272             CODE:
4273 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4274 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TSHORT));
    0          
4275 0 0         RETVAL=ffg2di(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(short*)SvPV(ST(6),PL_na),&anynul,&status);
4276             }
4277             else {
4278 0           dims[0]=naxis2; dims[1] = dim1;
4279 0           array = get_mortalspace(naxis2*dim1,TSHORT);
4280 0           RETVAL=ffg2di(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4281 0           unpack2D(ST(6),array,dims,TSHORT,fptr->perlyunpacking);
4282             }
4283 0 0         if (ST(7)!=&PL_sv_undef) sv_setiv(ST(7),anynul);
4284             OUTPUT:
4285             status
4286             RETVAL
4287              
4288             int
4289             ffg2duk(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4290             FitsFile * fptr
4291             long group
4292             unsigned int nulval
4293             LONGLONG dim1
4294             LONGLONG naxis1
4295             LONGLONG naxis2
4296             unsigned int * array = NO_INIT
4297             int anynul = NO_INIT
4298             int status
4299             ALIAS:
4300             Astro::FITS::CFITSIO::fits_read_2d_uint = 1
4301             fitsfilePtr::read_2d_uint = 2
4302             PREINIT:
4303             LONGLONG dims[2];
4304             CODE:
4305 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4306 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TUINT));
    0          
4307 0 0         RETVAL=ffg2duk(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(unsigned int*)SvPV(ST(6),PL_na),&anynul,&status);
4308             }
4309             else {
4310 0           dims[0]=naxis2; dims[1] = dim1;
4311 0           array = get_mortalspace(naxis2*dim1,TUINT);
4312 0           RETVAL=ffg2duk(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4313 0           unpack2D(ST(6),array,dims,TUINT,fptr->perlyunpacking);
4314             }
4315 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
4316             OUTPUT:
4317             status
4318             RETVAL
4319              
4320             int
4321             ffg2dk(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4322             FitsFile * fptr
4323             long group
4324             int nulval
4325             LONGLONG dim1
4326             LONGLONG naxis1
4327             LONGLONG naxis2
4328             int * array = NO_INIT
4329             int anynul = NO_INIT
4330             int status
4331             ALIAS:
4332             Astro::FITS::CFITSIO::fits_read_2d_int = 1
4333             fitsfilePtr::read_2d_int = 2
4334             PREINIT:
4335             LONGLONG dims[2];
4336             CODE:
4337 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4338 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TINT));
    0          
4339 0 0         RETVAL=ffg2dk(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(int*)SvPV(ST(6),PL_na),&anynul,&status);
4340             }
4341             else {
4342 0           dims[0]=naxis2; dims[1] = dim1;
4343 0           array = get_mortalspace(naxis2*dim1,TINT);
4344 0           RETVAL=ffg2dk(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4345 0           unpack2D(ST(6),array,dims,TINT,fptr->perlyunpacking);
4346             }
4347 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
4348             OUTPUT:
4349             status
4350             RETVAL
4351              
4352             int
4353             ffg2duj(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4354             FitsFile * fptr
4355             long group
4356             unsigned long nulval
4357             LONGLONG dim1
4358             LONGLONG naxis1
4359             LONGLONG naxis2
4360             unsigned long * array = NO_INIT
4361             int anynul = NO_INIT
4362             int status
4363             ALIAS:
4364             Astro::FITS::CFITSIO::fits_read_2d_ulng = 1
4365             fitsfilePtr::read_2d_ulng = 2
4366             PREINIT:
4367             LONGLONG dims[2];
4368             CODE:
4369 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4370 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TULONG));
    0          
4371 0 0         RETVAL=ffg2duj(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(unsigned long*)SvPV(ST(6),PL_na),&anynul,&status);
4372             }
4373             else {
4374 0           dims[0]=naxis2; dims[1] = dim1;
4375 0           array = get_mortalspace(naxis2*dim1,TULONG);
4376 0           RETVAL=ffg2duj(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4377 0           unpack2D(ST(6),array,dims,TULONG,fptr->perlyunpacking);
4378             }
4379 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
4380             OUTPUT:
4381             status
4382             RETVAL
4383              
4384             int
4385             ffg2dj(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4386             FitsFile * fptr
4387             long group
4388             long nulval
4389             LONGLONG dim1
4390             LONGLONG naxis1
4391             LONGLONG naxis2
4392             long * array = NO_INIT
4393             int anynul = NO_INIT
4394             int status
4395             ALIAS:
4396             Astro::FITS::CFITSIO::fits_read_2d_lng = 1
4397             fitsfilePtr::read_2d_lng = 2
4398             PREINIT:
4399             LONGLONG dims[2];
4400             CODE:
4401 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4402 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TLONG));
    0          
4403 0 0         RETVAL=ffg2dj(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(long*)SvPV(ST(6),PL_na),&anynul,&status);
4404             }
4405             else {
4406 0           dims[0]=naxis2; dims[1] = dim1;
4407 0           array = get_mortalspace(naxis2*dim1,TLONG);
4408 0           RETVAL=ffg2dj(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4409 0           unpack2D(ST(6),array,dims,TLONG,fptr->perlyunpacking);
4410             }
4411 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
4412             OUTPUT:
4413             status
4414             RETVAL
4415              
4416             int
4417             ffg2djj(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4418             FitsFile * fptr
4419             long group
4420             long nulval
4421             LONGLONG dim1
4422             LONGLONG naxis1
4423             LONGLONG naxis2
4424             LONGLONG* array = NO_INIT
4425             int anynul = NO_INIT
4426             int status
4427             ALIAS:
4428             Astro::FITS::CFITSIO::fits_read_2d_lnglng = 1
4429             fitsfilePtr::read_2d_lnglng = 2
4430             PREINIT:
4431             LONGLONG dims[2];
4432             CODE:
4433 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4434 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TLONGLONG));
    0          
4435 0 0         RETVAL=ffg2djj(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(LONGLONG*)SvPV(ST(6),PL_na),&anynul,&status);
4436             }
4437             else {
4438 0           dims[0]=naxis2; dims[1] = dim1;
4439 0           array = get_mortalspace(naxis2*dim1,TLONGLONG);
4440 0           RETVAL=ffg2djj(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4441 0           unpack2D(ST(6),array,dims,TLONGLONG,fptr->perlyunpacking);
4442             }
4443 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
4444             OUTPUT:
4445             status
4446             RETVAL
4447              
4448             int
4449             ffg2de(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4450             FitsFile * fptr
4451             long group
4452             float nulval
4453             LONGLONG dim1
4454             LONGLONG naxis1
4455             LONGLONG naxis2
4456             float * array = NO_INIT
4457             int anynul = NO_INIT
4458             int status
4459             ALIAS:
4460             Astro::FITS::CFITSIO::fits_read_2d_flt = 1
4461             fitsfilePtr::read_2d_flt = 2
4462             PREINIT:
4463             LONGLONG dims[2];
4464             CODE:
4465 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4466 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TFLOAT));
    0          
4467 0 0         RETVAL=ffg2de(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(float*)SvPV(ST(6),PL_na),&anynul,&status);
4468             }
4469             else {
4470 0           dims[0]=naxis2; dims[1] = dim1;
4471 0           array = get_mortalspace(naxis2*dim1,TFLOAT);
4472 0           RETVAL=ffg2de(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4473 0           unpack2D(ST(6),array,dims,TFLOAT,fptr->perlyunpacking);
4474             }
4475 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
4476             OUTPUT:
4477             status
4478             RETVAL
4479              
4480             int
4481             ffg2dd(fptr,group,nulval,dim1,naxis1,naxis2,array,anynul,status)
4482             FitsFile * fptr
4483             long group
4484             double nulval
4485             LONGLONG dim1
4486             LONGLONG naxis1
4487             LONGLONG naxis2
4488             double * array = NO_INIT
4489             int anynul = NO_INIT
4490             int status
4491             ALIAS:
4492             Astro::FITS::CFITSIO::fits_read_2d_dbl = 1
4493             fitsfilePtr::read_2d_dbl = 2
4494             PREINIT:
4495             LONGLONG dims[2];
4496             CODE:
4497 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4498 0 0         SvGROW(ST(6),naxis2*dim1*sizeof_datatype(TDOUBLE));
    0          
4499 0 0         RETVAL=ffg2dd(fptr->fptr,group,nulval,dim1,naxis1,naxis2,(double*)SvPV(ST(6),PL_na),&anynul,&status);
4500             }
4501             else {
4502 0           dims[0]=naxis2; dims[1] = dim1;
4503 0           array = get_mortalspace(naxis2*dim1,TDOUBLE);
4504 0           RETVAL=ffg2dd(fptr->fptr,group,nulval,dim1,naxis1,naxis2,array,&anynul,&status);
4505 0           unpack2D(ST(6),array,dims,TDOUBLE,fptr->perlyunpacking);
4506             }
4507 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
4508             OUTPUT:
4509             status
4510             RETVAL
4511              
4512             int
4513             ffg3db(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4514             FitsFile * fptr
4515             long group
4516             byte nulval
4517             LONGLONG dim1
4518             LONGLONG dim2
4519             LONGLONG naxis1
4520             LONGLONG naxis2
4521             LONGLONG naxis3
4522             byte * array = NO_INIT
4523             int anynul = NO_INIT
4524             int status
4525             ALIAS:
4526             Astro::FITS::CFITSIO::fits_read_3d_byt = 1
4527             fitsfilePtr::read_3d_byt = 2
4528             PREINIT:
4529             LONGLONG dims[3];
4530             CODE:
4531 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4532 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TBYTE));
    0          
4533 0 0         RETVAL=ffg3db(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(byte*)SvPV(ST(8),PL_na),&anynul,&status);
4534             }
4535             else {
4536 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4537 0           array = get_mortalspace(dim1*dim2*naxis3,TBYTE);
4538 0           RETVAL=ffg3db(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4539 0           unpack3D(ST(8),array,dims,TBYTE,fptr->perlyunpacking);
4540             }
4541 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4542             OUTPUT:
4543             status
4544             RETVAL
4545              
4546             int
4547             ffg3dsb(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4548             FitsFile * fptr
4549             long group
4550             signed char nulval
4551             LONGLONG dim1
4552             LONGLONG dim2
4553             LONGLONG naxis1
4554             LONGLONG naxis2
4555             LONGLONG naxis3
4556             signed char* array = NO_INIT
4557             int anynul = NO_INIT
4558             int status
4559             ALIAS:
4560             Astro::FITS::CFITSIO::fits_read_3d_sbyt = 1
4561             fitsfilePtr::read_3d_sbyt = 2
4562             PREINIT:
4563             LONGLONG dims[3];
4564             CODE:
4565 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4566 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TSBYTE));
    0          
4567 0 0         RETVAL=ffg3dsb(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(signed char*)SvPV(ST(8),PL_na),&anynul,&status);
4568             }
4569             else {
4570 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4571 0           array = get_mortalspace(dim1*dim2*naxis3,TSBYTE);
4572 0           RETVAL=ffg3dsb(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4573 0           unpack3D(ST(8),array,dims,TSBYTE,fptr->perlyunpacking);
4574             }
4575 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4576             OUTPUT:
4577             status
4578             RETVAL
4579              
4580             int
4581             ffg3dui(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4582             FitsFile * fptr
4583             long group
4584             unsigned short nulval
4585             LONGLONG dim1
4586             LONGLONG dim2
4587             LONGLONG naxis1
4588             LONGLONG naxis2
4589             LONGLONG naxis3
4590             unsigned short * array = NO_INIT
4591             int anynul = NO_INIT
4592             int status
4593             ALIAS:
4594             Astro::FITS::CFITSIO::fits_read_3d_usht = 1
4595             fitsfilePtr::read_3d_usht = 2
4596             PREINIT:
4597             LONGLONG dims[3];
4598             CODE:
4599 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4600 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TUSHORT));
    0          
4601 0 0         RETVAL=ffg3dui(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(unsigned short*)SvPV(ST(8),PL_na),&anynul,&status);
4602             }
4603             else {
4604 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4605 0           array = get_mortalspace(dim1*dim2*naxis3,TUSHORT);
4606 0           RETVAL=ffg3dui(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4607 0           unpack3D(ST(8),array,dims,TUSHORT,fptr->perlyunpacking);
4608             }
4609 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4610             OUTPUT:
4611             status
4612             RETVAL
4613              
4614             int
4615             ffg3di(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4616             FitsFile * fptr
4617             long group
4618             short nulval
4619             LONGLONG dim1
4620             LONGLONG dim2
4621             LONGLONG naxis1
4622             LONGLONG naxis2
4623             LONGLONG naxis3
4624             short * array = NO_INIT
4625             int anynul = NO_INIT
4626             int status
4627             ALIAS:
4628             Astro::FITS::CFITSIO::fits_read_3d_sht = 1
4629             fitsfilePtr::read_3d_sht = 2
4630             PREINIT:
4631             LONGLONG dims[3];
4632             CODE:
4633 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4634 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TSHORT));
    0          
4635 0 0         RETVAL=ffg3di(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(short*)SvPV(ST(8),PL_na),&anynul,&status);
4636             }
4637             else {
4638 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4639 0           array = get_mortalspace(dim1*dim2*naxis3,TSHORT);
4640 0           RETVAL=ffg3di(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4641 0           unpack3D(ST(8),array,dims,TSHORT,fptr->perlyunpacking);
4642             }
4643 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4644             OUTPUT:
4645             status
4646             RETVAL
4647              
4648             int
4649             ffg3duk(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4650             FitsFile * fptr
4651             long group
4652             unsigned int nulval
4653             LONGLONG dim1
4654             LONGLONG dim2
4655             LONGLONG naxis1
4656             LONGLONG naxis2
4657             LONGLONG naxis3
4658             unsigned int * array = NO_INIT
4659             int anynul = NO_INIT
4660             int status
4661             ALIAS:
4662             Astro::FITS::CFITSIO::fits_read_3d_uint = 1
4663             fitsfilePtr::read_3d_uint = 2
4664             PREINIT:
4665             LONGLONG dims[3];
4666             CODE:
4667 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4668 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TUINT));
    0          
4669 0 0         RETVAL=ffg3duk(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(unsigned int*)SvPV(ST(8),PL_na),&anynul,&status);
4670             }
4671             else {
4672 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4673 0           array = get_mortalspace(dim1*dim2*naxis3,TUINT);
4674 0           RETVAL=ffg3duk(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4675 0           unpack3D(ST(8),array,dims,TUINT,fptr->perlyunpacking);
4676             }
4677 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4678             OUTPUT:
4679             status
4680             RETVAL
4681              
4682             int
4683             ffg3dk(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4684             FitsFile * fptr
4685             long group
4686             int nulval
4687             LONGLONG dim1
4688             LONGLONG dim2
4689             LONGLONG naxis1
4690             LONGLONG naxis2
4691             LONGLONG naxis3
4692             int * array = NO_INIT
4693             int anynul = NO_INIT
4694             int status
4695             ALIAS:
4696             Astro::FITS::CFITSIO::fits_read_3d_int = 1
4697             fitsfilePtr::read_3d_int = 2
4698             PREINIT:
4699             LONGLONG dims[3];
4700             CODE:
4701 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4702 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TINT));
    0          
4703 0 0         RETVAL=ffg3dk(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(int*)SvPV(ST(8),PL_na),&anynul,&status);
4704             }
4705             else {
4706 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4707 0           array = get_mortalspace(dim1*dim2*naxis3,TINT);
4708 0           RETVAL=ffg3dk(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4709 0           unpack3D(ST(8),array,dims,TINT,fptr->perlyunpacking);
4710             }
4711 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4712             OUTPUT:
4713             status
4714             RETVAL
4715              
4716             int
4717             ffg3duj(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4718             FitsFile * fptr
4719             long group
4720             unsigned long nulval
4721             LONGLONG dim1
4722             LONGLONG dim2
4723             LONGLONG naxis1
4724             LONGLONG naxis2
4725             LONGLONG naxis3
4726             unsigned long * array = NO_INIT
4727             int anynul = NO_INIT
4728             int status
4729             ALIAS:
4730             Astro::FITS::CFITSIO::fits_read_3d_ulng = 1
4731             fitsfilePtr::read_3d_ulng = 2
4732             PREINIT:
4733             LONGLONG dims[3];
4734             CODE:
4735 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4736 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TULONG));
    0          
4737 0 0         RETVAL=ffg3duj(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(unsigned long*)SvPV(ST(8),PL_na),&anynul,&status);
4738             }
4739             else {
4740 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4741 0           array = get_mortalspace(dim1*dim2*naxis3,TULONG);
4742 0           RETVAL=ffg3duj(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4743 0           unpack3D(ST(8),array,dims,TULONG,fptr->perlyunpacking);
4744             }
4745 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4746             OUTPUT:
4747             status
4748             RETVAL
4749              
4750             int
4751             ffg3dj(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4752             FitsFile * fptr
4753             long group
4754             long nulval
4755             LONGLONG dim1
4756             LONGLONG dim2
4757             LONGLONG naxis1
4758             LONGLONG naxis2
4759             LONGLONG naxis3
4760             long * array = NO_INIT
4761             int anynul = NO_INIT
4762             int status
4763             ALIAS:
4764             Astro::FITS::CFITSIO::fits_read_3d_lng = 1
4765             fitsfilePtr::read_3d_lng = 2
4766             PREINIT:
4767             LONGLONG dims[3];
4768             CODE:
4769 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4770 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TLONG));
    0          
4771 0 0         RETVAL=ffg3dj(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(long*)SvPV(ST(8),PL_na),&anynul,&status);
4772             }
4773             else {
4774 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4775 0           array = get_mortalspace(dim1*dim2*naxis3,TLONG);
4776 0           RETVAL=ffg3dj(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4777 0           unpack3D(ST(8),array,dims,TLONG,fptr->perlyunpacking);
4778             }
4779 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4780             OUTPUT:
4781             status
4782             RETVAL
4783              
4784             int
4785             ffg3djj(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4786             FitsFile * fptr
4787             long group
4788             LONGLONG nulval
4789             LONGLONG dim1
4790             LONGLONG dim2
4791             LONGLONG naxis1
4792             LONGLONG naxis2
4793             LONGLONG naxis3
4794             LONGLONG* array = NO_INIT
4795             int anynul = NO_INIT
4796             int status
4797             ALIAS:
4798             Astro::FITS::CFITSIO::fits_read_3d_lnglng = 1
4799             fitsfilePtr::read_3d_lnglng = 2
4800             PREINIT:
4801             LONGLONG dims[3];
4802             CODE:
4803 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4804 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TLONGLONG));
    0          
4805 0 0         RETVAL=ffg3djj(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(LONGLONG*)SvPV(ST(8),PL_na),&anynul,&status);
4806             }
4807             else {
4808 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4809 0           array = get_mortalspace(dim1*dim2*naxis3,TLONGLONG);
4810 0           RETVAL=ffg3djj(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4811 0           unpack3D(ST(8),array,dims,TLONGLONG,fptr->perlyunpacking);
4812             }
4813 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4814             OUTPUT:
4815             status
4816             RETVAL
4817              
4818             int
4819             ffg3de(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4820             FitsFile * fptr
4821             long group
4822             float nulval
4823             LONGLONG dim1
4824             LONGLONG dim2
4825             LONGLONG naxis1
4826             LONGLONG naxis2
4827             LONGLONG naxis3
4828             float * array = NO_INIT
4829             int anynul = NO_INIT
4830             int status
4831             ALIAS:
4832             Astro::FITS::CFITSIO::fits_read_3d_flt = 1
4833             fitsfilePtr::read_3d_flt = 2
4834             PREINIT:
4835             LONGLONG dims[3];
4836             CODE:
4837 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4838 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TFLOAT));
    0          
4839 0 0         RETVAL=ffg3de(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(float*)SvPV(ST(8),PL_na),&anynul,&status);
4840             }
4841             else {
4842 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4843 0           array = get_mortalspace(dim1*dim2*naxis3,TFLOAT);
4844 0           RETVAL=ffg3de(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4845 0           unpack3D(ST(8),array,dims,TFLOAT,fptr->perlyunpacking);
4846             }
4847 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4848             OUTPUT:
4849             status
4850             RETVAL
4851              
4852             int
4853             ffg3dd(fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,anynul,status)
4854             FitsFile * fptr
4855             long group
4856             double nulval
4857             LONGLONG dim1
4858             LONGLONG dim2
4859             LONGLONG naxis1
4860             LONGLONG naxis2
4861             LONGLONG naxis3
4862             double * array = NO_INIT
4863             int anynul = NO_INIT
4864             int status
4865             ALIAS:
4866             Astro::FITS::CFITSIO::fits_read_3d_dbl = 1
4867             fitsfilePtr::read_3d_dbl = 2
4868             PREINIT:
4869             LONGLONG dims[3];
4870             CODE:
4871 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
4872 0 0         SvGROW(ST(8),naxis3*dim2*dim1*sizeof_datatype(TDOUBLE));
    0          
4873 0 0         RETVAL=ffg3dd(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,(double*)SvPV(ST(8),PL_na),&anynul,&status);
4874             }
4875             else {
4876 0           dims[0]=naxis3; dims[1] = dim2; dims[2] = dim1;
4877 0           array = get_mortalspace(dim1*dim2*naxis3,TDOUBLE);
4878 0           RETVAL=ffg3dd(fptr->fptr,group,nulval,dim1,dim2,naxis1,naxis2,naxis3,array,&anynul,&status);
4879 0           unpack3D(ST(8),array,dims,TDOUBLE,fptr->perlyunpacking);
4880             }
4881 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
4882             OUTPUT:
4883             status
4884             RETVAL
4885              
4886             int
4887             ffgcdw(fptr, colnum, dispwidth, status)
4888             fitsfile *fptr
4889             int colnum
4890             int &dispwidth = NO_INIT
4891             int &status
4892             ALIAS:
4893             Astro::FITS::CFITSIO::fits_get_col_display_width = 1
4894             fitsfilePtr::get_col_display_width = 2
4895             OUTPUT:
4896             dispwidth
4897             status
4898              
4899             int
4900             ffghtb(fptr,rowlen,nrows,tfields,ttype,tbcol,tform,tunit,extname,status)
4901             FitsFile * fptr
4902             long rowlen = NO_INIT
4903             long nrows = NO_INIT
4904             int tfields = NO_INIT
4905             char ** ttype = NO_INIT
4906             long * tbcol = NO_INIT
4907             char ** tform = NO_INIT
4908             char ** tunit = NO_INIT
4909             char * extname = NO_INIT
4910             int status
4911             ALIAS:
4912             Astro::FITS::CFITSIO::fits_read_atblhdr = 1
4913             fitsfilePtr::read_atblhdr = 2
4914             PREINIT:
4915             int i;
4916             CODE:
4917 1           ffghtb(fptr->fptr,0,&rowlen,&nrows,&tfields,NULL,NULL,NULL,NULL,NULL,&status);
4918              
4919 1 50         tbcol = (ST(5)!=&PL_sv_undef) ? get_mortalspace(tfields,TLONG) : NULL;
4920 1 50         extname = (ST(8)!=&PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
4921 1 50         if (ST(4)!=&PL_sv_undef) {
4922 1           ttype = get_mortalspace(tfields,TSTRING);
4923 6 100         for (i=0; i
4924 5           ttype[i] = get_mortalspace(FLEN_VALUE,TBYTE);
4925 0           } else ttype = NULL;
4926 1 50         if (ST(6)!=&PL_sv_undef) {
4927 1           tform = get_mortalspace(tfields,TSTRING);
4928 6 100         for (i=0; i
4929 5           tform[i] = get_mortalspace(FLEN_VALUE,TBYTE);
4930 0           } else tform = NULL;
4931 1 50         if (ST(7)!=&PL_sv_undef) {
4932 1           tunit = get_mortalspace(tfields,TSTRING);
4933 6 100         for (i=0; i
4934 5           tunit[i] = get_mortalspace(FLEN_VALUE,TBYTE);
4935 0           } else tunit = NULL;
4936              
4937 1           RETVAL=ffghtb(fptr->fptr,tfields,&rowlen,&nrows,&tfields,ttype,tbcol,tform,tunit,extname,&status);
4938 1 50         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),rowlen);
4939 1 50         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),nrows);
4940 1 50         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),tfields);
4941 1 50         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),ttype,tfields,TSTRING,fptr->perlyunpacking);
4942 1 50         if (ST(5)!=&PL_sv_undef) unpack1D(ST(5),tbcol,tfields,TLONG,fptr->perlyunpacking);
4943 1 50         if (ST(6)!=&PL_sv_undef) unpack1D(ST(6),tform,tfields,TSTRING,fptr->perlyunpacking);
4944 1 50         if (ST(7)!=&PL_sv_undef) unpack1D(ST(7),tunit,tfields,TSTRING,fptr->perlyunpacking);
4945 1 50         if (ST(8)!=&PL_sv_undef) sv_setpv(ST(8),extname);
4946             OUTPUT:
4947             status
4948             RETVAL
4949              
4950             int
4951             ffghtbll(fptr,rowlen,nrows,tfields,ttype,tbcol,tform,tunit,extname,status)
4952             FitsFile * fptr
4953             LONGLONG rowlen = NO_INIT
4954             LONGLONG nrows = NO_INIT
4955             int tfields = NO_INIT
4956             char ** ttype = NO_INIT
4957             LONGLONG * tbcol = NO_INIT
4958             char ** tform = NO_INIT
4959             char ** tunit = NO_INIT
4960             char * extname = NO_INIT
4961             int status
4962             ALIAS:
4963             Astro::FITS::CFITSIO::fits_read_atblhdrll = 1
4964             fitsfilePtr::read_atblhdrll = 2
4965             PREINIT:
4966             int i;
4967             CODE:
4968 0           ffghtbll(fptr->fptr,0,&rowlen,&nrows,&tfields,NULL,NULL,NULL,NULL,NULL,&status);
4969              
4970 0 0         tbcol = (ST(5)!=&PL_sv_undef) ? get_mortalspace(tfields,TLONGLONG) : NULL;
4971 0 0         extname = (ST(8)!=&PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
4972 0 0         if (ST(4)!=&PL_sv_undef) {
4973 0           ttype = get_mortalspace(tfields,TSTRING);
4974 0 0         for (i=0; i
4975 0           ttype[i] = get_mortalspace(FLEN_VALUE,TBYTE);
4976 0           } else ttype = NULL;
4977 0 0         if (ST(6)!=&PL_sv_undef) {
4978 0           tform = get_mortalspace(tfields,TSTRING);
4979 0 0         for (i=0; i
4980 0           tform[i] = get_mortalspace(FLEN_VALUE,TBYTE);
4981 0           } else tform = NULL;
4982 0 0         if (ST(7)!=&PL_sv_undef) {
4983 0           tunit = get_mortalspace(tfields,TSTRING);
4984 0 0         for (i=0; i
4985 0           tunit[i] = get_mortalspace(FLEN_VALUE,TBYTE);
4986 0           } else tunit = NULL;
4987              
4988 0           RETVAL=ffghtbll(fptr->fptr,tfields,&rowlen,&nrows,&tfields,ttype,tbcol,tform,tunit,extname,&status);
4989 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),rowlen);
4990 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),nrows);
4991 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),tfields);
4992 0 0         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),ttype,tfields,TSTRING,fptr->perlyunpacking);
4993 0 0         if (ST(5)!=&PL_sv_undef) unpack1D(ST(5),tbcol,tfields,TLONGLONG,fptr->perlyunpacking);
4994 0 0         if (ST(6)!=&PL_sv_undef) unpack1D(ST(6),tform,tfields,TSTRING,fptr->perlyunpacking);
4995 0 0         if (ST(7)!=&PL_sv_undef) unpack1D(ST(7),tunit,tfields,TSTRING,fptr->perlyunpacking);
4996 0 0         if (ST(8)!=&PL_sv_undef) sv_setpv(ST(8),extname);
4997             OUTPUT:
4998             status
4999             RETVAL
5000              
5001             int
5002             ffghbn(fptr,nrows,tfields,ttype,tform,tunit,extname,pcount,status)
5003             FitsFile * fptr
5004             long nrows = NO_INIT
5005             int tfields = NO_INIT
5006             char ** ttype = NO_INIT
5007             char ** tform = NO_INIT
5008             char ** tunit = NO_INIT
5009             char * extname = NO_INIT
5010             long pcount = NO_INIT
5011             int status
5012             ALIAS:
5013             Astro::FITS::CFITSIO::fits_read_btblhdr = 1
5014             fitsfilePtr::read_btblhdr = 2
5015             PREINIT:
5016             int i;
5017             CODE:
5018 1           ffghbn(fptr->fptr,0,&nrows,&tfields,NULL,NULL,NULL,NULL,&pcount,&status);
5019 1 50         extname = (ST(7)!=&PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
5020 1 50         if (ST(4) != &PL_sv_undef) {
5021 1           ttype = get_mortalspace(tfields,TSTRING);
5022 11 100         for (i=0; i
5023 10           ttype[i] = get_mortalspace(FLEN_VALUE,TBYTE);
5024 0           } else ttype = NULL;
5025 1 50         if (ST(5) != &PL_sv_undef) {
5026 1           tform = get_mortalspace(tfields,TSTRING);
5027 11 100         for (i=0; i
5028 10           tform[i] = get_mortalspace(FLEN_VALUE,TBYTE);
5029 0           } else tform = NULL;
5030 1 50         if (ST(6) != &PL_sv_undef) {
5031 1           tunit = get_mortalspace(tfields,TSTRING);
5032 11 100         for (i=0; i
5033 10           tunit[i] = get_mortalspace(FLEN_VALUE,TBYTE);
5034 0           } else tunit = NULL;
5035 1           RETVAL=ffghbn(fptr->fptr,tfields,&nrows,&tfields,ttype,tform,tunit,extname,&pcount,&status);
5036 1 50         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),nrows);
5037 1 50         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),tfields);
5038 1 50         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),ttype,tfields,TSTRING,fptr->perlyunpacking);
5039 1 50         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),tform,tfields,TSTRING,fptr->perlyunpacking);
5040 1 50         if (ST(5)!=&PL_sv_undef) unpack1D(ST(5),tunit,tfields,TSTRING,fptr->perlyunpacking);
5041 1 50         if (ST(6)!=&PL_sv_undef) sv_setpv(ST(6),extname);
5042 1 50         if (ST(7)!=&PL_sv_undef) sv_setiv(ST(7),pcount);
5043             OUTPUT:
5044             status
5045             RETVAL
5046              
5047             int
5048             ffghbnll(fptr,nrows,tfields,ttype,tform,tunit,extname,pcount,status)
5049             FitsFile * fptr
5050             LONGLONG nrows = NO_INIT
5051             int tfields = NO_INIT
5052             char ** ttype = NO_INIT
5053             char ** tform = NO_INIT
5054             char ** tunit = NO_INIT
5055             char * extname = NO_INIT
5056             LONGLONG pcount = NO_INIT
5057             int status
5058             ALIAS:
5059             Astro::FITS::CFITSIO::fits_read_btblhdrll = 1
5060             fitsfilePtr::read_btblhdrll = 2
5061             PREINIT:
5062             int i;
5063             CODE:
5064 0           ffghbnll(fptr->fptr,0,&nrows,&tfields,NULL,NULL,NULL,NULL,&pcount,&status);
5065 0 0         extname = (ST(7)!=&PL_sv_undef) ? get_mortalspace(FLEN_VALUE,TBYTE) : NULL;
5066 0 0         if (ST(4) != &PL_sv_undef) {
5067 0           ttype = get_mortalspace(tfields,TSTRING);
5068 0 0         for (i=0; i
5069 0           ttype[i] = get_mortalspace(FLEN_VALUE,TBYTE);
5070 0           } else ttype = NULL;
5071 0 0         if (ST(5) != &PL_sv_undef) {
5072 0           tform = get_mortalspace(tfields,TSTRING);
5073 0 0         for (i=0; i
5074 0           tform[i] = get_mortalspace(FLEN_VALUE,TBYTE);
5075 0           } else tform = NULL;
5076 0 0         if (ST(6) != &PL_sv_undef) {
5077 0           tunit = get_mortalspace(tfields,TSTRING);
5078 0 0         for (i=0; i
5079 0           tunit[i] = get_mortalspace(FLEN_VALUE,TBYTE);
5080 0           } else tunit = NULL;
5081 0           RETVAL=ffghbnll(fptr->fptr,tfields,&nrows,&tfields,ttype,tform,tunit,extname,&pcount,&status);
5082 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),nrows);
5083 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),tfields);
5084 0 0         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),ttype,tfields,TSTRING,fptr->perlyunpacking);
5085 0 0         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),tform,tfields,TSTRING,fptr->perlyunpacking);
5086 0 0         if (ST(5)!=&PL_sv_undef) unpack1D(ST(5),tunit,tfields,TSTRING,fptr->perlyunpacking);
5087 0 0         if (ST(6)!=&PL_sv_undef) sv_setpv(ST(6),extname);
5088 0 0         if (ST(7)!=&PL_sv_undef) sv_setiv(ST(7),pcount);
5089             OUTPUT:
5090             status
5091             RETVAL
5092              
5093             int
5094             ffgcrd(fptr,keyname,card,status)
5095             fitsfile * fptr
5096             char * keyname
5097             char * card = NO_INIT
5098             int status
5099             ALIAS:
5100             Astro::FITS::CFITSIO::fits_read_card = 1
5101             fitsfilePtr::read_card = 2
5102             CODE:
5103 2           card = get_mortalspace(FLEN_CARD,TBYTE);
5104 2           RETVAL=ffgcrd(fptr,keyname,card,&status);
5105             OUTPUT:
5106             card
5107             status
5108             RETVAL
5109              
5110             int
5111             ffgcv(fptr,datatype,colnum,firstrow,firstelem,nelements,nulval,array,anynul,status)
5112             FitsFile * fptr
5113             int datatype
5114             int colnum
5115             LONGLONG firstrow
5116             LONGLONG firstelem
5117             LONGLONG nelements
5118             SV * nulval
5119             void * array = NO_INIT
5120             int anynul = NO_INIT
5121             int status
5122             ALIAS:
5123             Astro::FITS::CFITSIO::fits_read_col = 1
5124             fitsfilePtr::read_col = 2
5125             PREINIT:
5126             long col_width;
5127             LONGLONG i;
5128             int storage_datatype;
5129             CODE:
5130 0           storage_datatype = datatype;
5131 0 0         if (datatype == TBIT)
5132 0           storage_datatype = TLOGICAL;
5133 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking) && datatype != TSTRING) {
    0          
    0          
    0          
5134 0 0         SvGROW(ST(7),nelements*sizeof_datatype(storage_datatype));
    0          
5135 0 0         RETVAL=ffgcv(fptr->fptr,datatype,colnum,firstrow,firstelem,nelements,pack1D(nulval,storage_datatype),(void*)SvPV(ST(7),PL_na),&anynul,&status);
5136             }
5137             else {
5138 0           array = get_mortalspace(nelements,storage_datatype);
5139 0 0         if (datatype == TSTRING) {
5140 0           col_width = column_width(fptr->fptr,colnum);
5141 0 0         for (i=0;i
5142 0           *((char**)array+i)=get_mortalspace(col_width+1,TBYTE);
5143             }
5144 0           RETVAL=ffgcv(fptr->fptr,datatype,colnum,firstrow,firstelem,nelements,pack1D(nulval,storage_datatype),array,&anynul,&status);
5145 0           unpack1D(ST(7),array,nelements,storage_datatype,fptr->perlyunpacking);
5146             }
5147 0 0         if (ST(8) != &PL_sv_undef) sv_setiv(ST(8),anynul);
5148             OUTPUT:
5149             status
5150             RETVAL
5151              
5152             int
5153             ffgcx(fptr,colnum,frow,fbit,nbit,larray,status)
5154             FitsFile * fptr
5155             int colnum
5156             LONGLONG frow
5157             LONGLONG fbit
5158             LONGLONG nbit
5159             logical * larray = NO_INIT
5160             int status
5161             ALIAS:
5162             Astro::FITS::CFITSIO::fits_read_col_bit = 1
5163             fitsfilePtr::read_col_bit = 2
5164             CODE:
5165 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5166 0 0         SvGROW(ST(5),nbit*sizeof_datatype(TLOGICAL));
    0          
5167 0 0         RETVAL = ffgcx(fptr->fptr,colnum,frow,fbit,nbit,(logical*)SvPV(ST(5),PL_na),&status);
5168             }
5169             else {
5170 1           larray = get_mortalspace(nbit,TLOGICAL);
5171 1           RETVAL=ffgcx(fptr->fptr,colnum,frow,fbit,nbit,larray,&status);
5172 1           unpack1D(ST(5),larray,nbit,TLOGICAL,fptr->perlyunpacking);
5173             }
5174             OUTPUT:
5175             status
5176             RETVAL
5177              
5178             int
5179             ffgcxui(fptr,colnum,frow,nrows,fbit,nbits,array,status)
5180             FitsFile *fptr
5181             int colnum
5182             LONGLONG frow
5183             LONGLONG nrows
5184             long fbit
5185             int nbits
5186             unsigned short *array = NO_INIT
5187             int status
5188             ALIAS:
5189             Astro::FITS::CFITSIO::fits_read_col_bit_usht = 1
5190             fitsfilePtr::read_col_bit_usht = 2
5191             CODE:
5192 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5193 0 0         SvGROW(ST(6),nrows*sizeof_datatype(TUSHORT));
    0          
5194 0 0         RETVAL = ffgcxui(fptr->fptr,colnum,frow,nrows,fbit,nbits,(unsigned short*)SvPV(ST(6),PL_na),&status);
5195             }
5196             else {
5197 0           array = get_mortalspace(nrows,TUSHORT);
5198 0           RETVAL = ffgcxui(fptr->fptr,colnum,frow,nrows,fbit,nbits,array,&status);
5199 0           unpack1D(ST(6),array,nrows,TUSHORT,fptr->perlyunpacking);
5200             }
5201             OUTPUT:
5202             RETVAL
5203             status
5204              
5205             int
5206             ffgcxuk(fptr,colnum,frow,nrows,fbit,nbits,array,status)
5207             FitsFile *fptr
5208             int colnum
5209             LONGLONG frow
5210             LONGLONG nrows
5211             long fbit
5212             int nbits
5213             unsigned int *array = NO_INIT
5214             int status
5215             ALIAS:
5216             Astro::FITS::CFITSIO::fits_read_col_bit_uint = 1
5217             fitsfilePtr::read_col_bit_uint = 2
5218             CODE:
5219 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5220 0 0         SvGROW(ST(6),nrows*sizeof_datatype(TUINT));
    0          
5221 0 0         RETVAL = ffgcxuk(fptr->fptr,colnum,frow,nrows,fbit,nbits,(unsigned int*)SvPV(ST(6),PL_na),&status);
5222             }
5223             else {
5224 0           array = get_mortalspace(nrows,TUINT);
5225 0           RETVAL = ffgcxuk(fptr->fptr,colnum,frow,nrows,fbit,nbits,array,&status);
5226 0           unpack1D(ST(6),array,nrows,TUINT,fptr->perlyunpacking);
5227             }
5228             OUTPUT:
5229             RETVAL
5230             status
5231              
5232             int
5233             ffgcvs(fptr,colnum,firstrow,firstelem,nelements,nulstr,array,anynul,status)
5234             FitsFile * fptr
5235             int colnum
5236             LONGLONG firstrow
5237             LONGLONG firstelem
5238             LONGLONG nelements
5239             char * nulstr
5240             char ** array = NO_INIT
5241             int anynul = NO_INIT
5242             int status
5243             ALIAS:
5244             Astro::FITS::CFITSIO::fits_read_col_str = 1
5245             fitsfilePtr::read_col_str = 2
5246             PREINIT:
5247             LONGLONG i;
5248             long col_size;
5249             CODE:
5250 7           col_size = column_width(fptr->fptr,colnum);
5251 7           array = get_mortalspace(nelements,TSTRING);
5252 90 100         for (i=0;i
5253 83           array[i] = get_mortalspace(col_size+1,TBYTE);
5254 7           RETVAL=ffgcvs(fptr->fptr,colnum,firstrow,firstelem,nelements,nulstr,array,&anynul,&status);
5255 7           unpack1D(ST(6),array,nelements,TSTRING,fptr->perlyunpacking);
5256 7 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5257             OUTPUT:
5258             status
5259             RETVAL
5260              
5261             int
5262             ffgcvl(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5263             FitsFile * fptr
5264             int cnum
5265             LONGLONG frow
5266             LONGLONG felem
5267             LONGLONG nelem
5268             logical nulval
5269             logical * array = NO_INIT
5270             int anynul = NO_INIT
5271             int status
5272             ALIAS:
5273             Astro::FITS::CFITSIO::fits_read_col_log = 1
5274             fitsfilePtr::read_col_log = 2
5275             CODE:
5276 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5277 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
5278 0 0         RETVAL=ffgcvl(fptr->fptr,cnum,frow,felem,nelem,nulval,(logical*)SvPV(ST(6),PL_na),&anynul,&status);
5279             }
5280             else {
5281 1           array = get_mortalspace(nelem,TLOGICAL);
5282 1           RETVAL=ffgcvl(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5283 1           unpack1D(ST(6),array,nelem,TLOGICAL,fptr->perlyunpacking);
5284             }
5285 1 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5286             OUTPUT:
5287             status
5288             RETVAL
5289              
5290             int
5291             ffgcvb(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5292             FitsFile * fptr
5293             int cnum
5294             LONGLONG frow
5295             LONGLONG felem
5296             LONGLONG nelem
5297             byte nulval
5298             byte * array = NO_INIT
5299             int anynul = NO_INIT
5300             int status
5301             ALIAS:
5302             Astro::FITS::CFITSIO::fits_read_col_byt = 1
5303             fitsfilePtr::read_col_byt = 2
5304             CODE:
5305 7 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5306 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TBYTE));
    0          
5307 0 0         RETVAL=ffgcvb(fptr->fptr,cnum,frow,felem,nelem,nulval,(byte*)SvPV(ST(6),PL_na),&anynul,&status);
5308             }
5309             else {
5310 7           array = get_mortalspace(nelem,TBYTE);
5311 7           RETVAL=ffgcvb(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5312 7           unpack1D(ST(6),array,nelem,TBYTE,fptr->perlyunpacking);
5313             }
5314 7 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5315             OUTPUT:
5316             status
5317             RETVAL
5318              
5319             int
5320             ffgcvsb(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5321             FitsFile * fptr
5322             int cnum
5323             LONGLONG frow
5324             LONGLONG felem
5325             LONGLONG nelem
5326             signed char nulval
5327             signed char* array = NO_INIT
5328             int anynul = NO_INIT
5329             int status
5330             ALIAS:
5331             Astro::FITS::CFITSIO::fits_read_col_sbyt = 1
5332             fitsfilePtr::read_col_sbyt = 2
5333             CODE:
5334 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5335 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TSBYTE));
    0          
5336 0 0         RETVAL=ffgcvsb(fptr->fptr,cnum,frow,felem,nelem,nulval,(signed char*)SvPV(ST(6),PL_na),&anynul,&status);
5337             }
5338             else {
5339 0           array = get_mortalspace(nelem,TSBYTE);
5340 0           RETVAL=ffgcvsb(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5341 0           unpack1D(ST(6),array,nelem,TSBYTE,fptr->perlyunpacking);
5342             }
5343 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5344             OUTPUT:
5345             status
5346             RETVAL
5347              
5348             int
5349             ffgcvui(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5350             FitsFile * fptr
5351             int cnum
5352             LONGLONG frow
5353             LONGLONG felem
5354             LONGLONG nelem
5355             unsigned short nulval
5356             unsigned short * array = NO_INIT
5357             int anynul = NO_INIT
5358             int status
5359             ALIAS:
5360             Astro::FITS::CFITSIO::fits_read_col_usht = 1
5361             fitsfilePtr::read_col_usht = 2
5362             CODE:
5363 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5364 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TUSHORT));
    0          
5365 0 0         RETVAL=ffgcvui(fptr->fptr,cnum,frow,felem,nelem,nulval,(unsigned short*)SvPV(ST(6),PL_na),&anynul,&status);
5366             }
5367             else {
5368 0           array = get_mortalspace(nelem,TUSHORT);
5369 0           RETVAL=ffgcvui(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5370 0           unpack1D(ST(6),array,nelem,TUSHORT,fptr->perlyunpacking);
5371             }
5372 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5373             OUTPUT:
5374             status
5375             RETVAL
5376              
5377             int
5378             ffgcvi(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5379             FitsFile * fptr
5380             int cnum
5381             LONGLONG frow
5382             LONGLONG felem
5383             LONGLONG nelem
5384             short nulval
5385             short * array = NO_INIT
5386             int anynul = NO_INIT
5387             int status
5388             ALIAS:
5389             Astro::FITS::CFITSIO::fits_read_col_sht = 1
5390             fitsfilePtr::read_col_sht = 2
5391             CODE:
5392 6 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5393 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TSHORT));
    0          
5394 0 0         RETVAL=ffgcvi(fptr->fptr,cnum,frow,felem,nelem,nulval,(short*)SvPV(ST(6),PL_na),&anynul,&status);
5395             }
5396             else {
5397 6           array = get_mortalspace(nelem,TSHORT);
5398 6           RETVAL=ffgcvi(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5399 6           unpack1D(ST(6),array,nelem,TSHORT,fptr->perlyunpacking);
5400             }
5401 6 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5402             OUTPUT:
5403             status
5404             RETVAL
5405              
5406             int
5407             ffgcvuk(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5408             FitsFile * fptr
5409             int cnum
5410             LONGLONG frow
5411             LONGLONG felem
5412             LONGLONG nelem
5413             unsigned int nulval
5414             unsigned int * array = NO_INIT
5415             int anynul = NO_INIT
5416             int status
5417             ALIAS:
5418             Astro::FITS::CFITSIO::fits_read_col_uint = 1
5419             fitsfilePtr::read_col_uint = 2
5420             CODE:
5421 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5422 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TUINT));
    0          
5423 0 0         RETVAL=ffgcvuk(fptr->fptr,cnum,frow,felem,nelem,nulval,(unsigned int*)SvPV(ST(6),PL_na),&anynul,&status);
5424             }
5425             else {
5426 0           array = get_mortalspace(nelem,TUINT);
5427 0           RETVAL=ffgcvuk(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5428 0           unpack1D(ST(6),array,nelem,TUINT,fptr->perlyunpacking);
5429             }
5430 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5431             OUTPUT:
5432             status
5433             RETVAL
5434              
5435             int
5436             ffgcvk(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5437             FitsFile * fptr
5438             int cnum
5439             LONGLONG frow
5440             LONGLONG felem
5441             LONGLONG nelem
5442             int nulval
5443             int * array = NO_INIT
5444             int anynul = NO_INIT
5445             int status
5446             ALIAS:
5447             Astro::FITS::CFITSIO::fits_read_col_int = 1
5448             fitsfilePtr::read_col_int = 2
5449             CODE:
5450 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5451 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TINT));
    0          
5452 0 0         RETVAL=ffgcvk(fptr->fptr,cnum,frow,felem,nelem,nulval,(int*)SvPV(ST(6),PL_na),&anynul,&status);
5453             }
5454             else {
5455 0           array = get_mortalspace(nelem,TINT);
5456 0           RETVAL=ffgcvk(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5457 0           unpack1D(ST(6),array,nelem,TINT,fptr->perlyunpacking);
5458             }
5459 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5460             OUTPUT:
5461             status
5462             RETVAL
5463              
5464             int
5465             ffgcvuj(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5466             FitsFile * fptr
5467             int cnum
5468             LONGLONG frow
5469             LONGLONG felem
5470             LONGLONG nelem
5471             unsigned long nulval
5472             unsigned long * array = NO_INIT
5473             int anynul = NO_INIT
5474             int status
5475             ALIAS:
5476             Astro::FITS::CFITSIO::fits_read_col_ulng = 1
5477             fitsfilePtr::read_col_ulng = 2
5478             CODE:
5479 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5480 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TULONG));
    0          
5481 0 0         RETVAL=ffgcvuj(fptr->fptr,cnum,frow,felem,nelem,nulval,(unsigned long*)SvPV(ST(6),PL_na),&anynul,&status);
5482             }
5483             else {
5484 0           array = get_mortalspace(nelem,TULONG);
5485 0           RETVAL=ffgcvuj(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5486 0           unpack1D(ST(6),array,nelem,TULONG,fptr->perlyunpacking);
5487             }
5488 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5489             OUTPUT:
5490             status
5491             RETVAL
5492              
5493             int
5494             ffgcvj(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5495             FitsFile * fptr
5496             int cnum
5497             LONGLONG frow
5498             LONGLONG felem
5499             LONGLONG nelem
5500             long nulval
5501             long * array = NO_INIT
5502             int anynul = NO_INIT
5503             int status
5504             ALIAS:
5505             Astro::FITS::CFITSIO::fits_read_col_lng = 1
5506             fitsfilePtr::read_col_lng = 2
5507             CODE:
5508 5 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5509 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLONG));
    0          
5510 0 0         RETVAL=ffgcvj(fptr->fptr,cnum,frow,felem,nelem,nulval,(long*)SvPV(ST(6),PL_na),&anynul,&status);
5511             }
5512             else {
5513 5           array = get_mortalspace(nelem,TLONG);
5514 5           RETVAL=ffgcvj(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5515 5           unpack1D(ST(6),array,nelem,TLONG,fptr->perlyunpacking);
5516             }
5517 5 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5518             OUTPUT:
5519             status
5520             RETVAL
5521              
5522             int
5523             ffgcvjj(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5524             FitsFile * fptr
5525             int cnum
5526             LONGLONG frow
5527             LONGLONG felem
5528             LONGLONG nelem
5529             LONGLONG nulval
5530             LONGLONG* array = NO_INIT
5531             int anynul = NO_INIT
5532             int status
5533             ALIAS:
5534             Astro::FITS::CFITSIO::fits_read_col_lnglng = 1
5535             fitsfilePtr::read_col_lnglng = 2
5536             CODE:
5537 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5538 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLONGLONG));
    0          
5539 0 0         RETVAL=ffgcvjj(fptr->fptr,cnum,frow,felem,nelem,nulval,(LONGLONG*)SvPV(ST(6),PL_na),&anynul,&status);
5540             }
5541             else {
5542 0           array = get_mortalspace(nelem,TLONGLONG);
5543 0           RETVAL=ffgcvjj(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5544 0           unpack1D(ST(6),array,nelem,TLONGLONG,fptr->perlyunpacking);
5545             }
5546 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5547             OUTPUT:
5548             status
5549             RETVAL
5550              
5551             int
5552             ffgcve(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5553             FitsFile * fptr
5554             int cnum
5555             LONGLONG frow
5556             LONGLONG felem
5557             LONGLONG nelem
5558             float nulval
5559             float * array = NO_INIT
5560             int anynul = NO_INIT
5561             int status
5562             ALIAS:
5563             Astro::FITS::CFITSIO::fits_read_col_flt = 1
5564             fitsfilePtr::read_col_flt = 2
5565             CODE:
5566 6 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5567 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TFLOAT));
    0          
5568 0 0         RETVAL=ffgcve(fptr->fptr,cnum,frow,felem,nelem,nulval,(float*)SvPV(ST(6),PL_na),&anynul,&status);
5569             }
5570             else {
5571 6           array = get_mortalspace(nelem,TFLOAT);
5572 6           RETVAL=ffgcve(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5573 6           unpack1D(ST(6),array,nelem,TFLOAT,fptr->perlyunpacking);
5574             }
5575 6 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5576             OUTPUT:
5577             status
5578             RETVAL
5579              
5580             int
5581             ffgcvd(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5582             FitsFile * fptr
5583             int cnum
5584             LONGLONG frow
5585             LONGLONG felem
5586             LONGLONG nelem
5587             double nulval
5588             double * array = NO_INIT
5589             int anynul = NO_INIT
5590             int status
5591             ALIAS:
5592             Astro::FITS::CFITSIO::fits_read_col_dbl = 1
5593             fitsfilePtr::read_col_dbl = 2
5594             CODE:
5595 6 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5596 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TDOUBLE));
    0          
5597 0 0         RETVAL=ffgcvd(fptr->fptr,cnum,frow,felem,nelem,nulval,(double*)SvPV(ST(6),PL_na),&anynul,&status);
5598             }
5599             else {
5600 6           array = get_mortalspace(nelem,TDOUBLE);
5601 6           RETVAL=ffgcvd(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5602 6           unpack1D(ST(6),array,nelem,TDOUBLE,fptr->perlyunpacking);
5603             }
5604 6 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5605             OUTPUT:
5606             status
5607             RETVAL
5608              
5609             int
5610             ffgcvc(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5611             FitsFile * fptr
5612             int cnum
5613             LONGLONG frow
5614             LONGLONG felem
5615             LONGLONG nelem
5616             float nulval
5617             float * array = NO_INIT
5618             int anynul = NO_INIT
5619             int status
5620             ALIAS:
5621             Astro::FITS::CFITSIO::fits_read_col_cmp = 1
5622             fitsfilePtr::read_col_cmp = 2
5623             CODE:
5624 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5625 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TCOMPLEX));
    0          
5626 0 0         RETVAL=ffgcvc(fptr->fptr,cnum,frow,felem,nelem,nulval,(float*)SvPV(ST(6),PL_na),&anynul,&status);
5627             }
5628             else {
5629 1           array = get_mortalspace(nelem,TCOMPLEX);
5630 1           RETVAL=ffgcvc(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5631 1           unpack1D(ST(6),array,nelem,TCOMPLEX,fptr->perlyunpacking);
5632             }
5633 1 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5634             OUTPUT:
5635             status
5636             RETVAL
5637              
5638             int
5639             ffgcvm(fptr,cnum,frow,felem,nelem,nulval,array,anynul,status)
5640             FitsFile * fptr
5641             int cnum
5642             LONGLONG frow
5643             LONGLONG felem
5644             LONGLONG nelem
5645             double nulval
5646             double * array = NO_INIT
5647             int anynul = NO_INIT
5648             int status
5649             ALIAS:
5650             Astro::FITS::CFITSIO::fits_read_col_dblcmp = 1
5651             fitsfilePtr::read_col_dblcmp = 2
5652             CODE:
5653 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
5654 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TDBLCOMPLEX));
    0          
5655 0 0         RETVAL=ffgcvm(fptr->fptr,cnum,frow,felem,nelem,nulval,(double*)SvPV(ST(6),PL_na),&anynul,&status);
5656             }
5657             else {
5658 1           array = get_mortalspace(nelem,TDBLCOMPLEX);
5659 1           RETVAL=ffgcvm(fptr->fptr,cnum,frow,felem,nelem,nulval,array,&anynul,&status);
5660 1           unpack1D(ST(6),array,nelem,TDBLCOMPLEX,fptr->perlyunpacking);
5661             }
5662 1 50         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5663             OUTPUT:
5664             status
5665             RETVAL
5666              
5667             int
5668             ffgcf(fptr,datatype,colnum,frow,felem,nelem,array,nularray,anynul,status)
5669             FitsFile * fptr
5670             int datatype
5671             int colnum
5672             LONGLONG frow
5673             LONGLONG felem
5674             LONGLONG nelem
5675             void * array = NO_INIT
5676             logical * nularray = NO_INIT
5677             int anynul = NO_INIT
5678             int status
5679             ALIAS:
5680             Astro::FITS::CFITSIO::fits_read_colnull = 1
5681             fitsfilePtr::read_colnull = 2
5682             PREINIT:
5683             int storage_datatype;
5684             CODE:
5685 0           storage_datatype = datatype;
5686 0 0         if (datatype == TBIT)
5687 0           storage_datatype = TLOGICAL;
5688 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking) && datatype != TSTRING) {
    0          
    0          
    0          
5689 0 0         if (ST(6)!=&PL_sv_undef) {
5690 0 0         SvGROW(ST(6),nelem*sizeof_datatype(storage_datatype));
    0          
5691 0 0         array = (void*)SvPV(ST(6),PL_na);
5692             }
5693             else
5694 0           array = get_mortalspace(nelem,storage_datatype);
5695 0 0         if (ST(7) != &PL_sv_undef) {
5696 0 0         SvGROW(ST(7),nelem*sizeof_datatype(TLOGICAL));
    0          
5697 0 0         nularray = (logical*)SvPV(ST(7),PL_na);
5698             }
5699             else
5700 0           nularray = get_mortalspace(nelem,TLOGICAL);
5701 0           RETVAL=ffgcf(fptr->fptr,datatype,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5702             }
5703             else {
5704 0           array = get_mortalspace(nelem,storage_datatype);
5705 0           nularray = get_mortalspace(nelem,TLOGICAL);
5706 0           RETVAL=ffgcf(fptr->fptr,datatype,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5707 0 0         if (ST(6)!=&PL_sv_undef)
5708 0           unpack1D(ST(6),array,nelem,storage_datatype,fptr->perlyunpacking);
5709 0 0         if (ST(7)!=&PL_sv_undef)
5710 0           unpack1D(ST(7),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
5711             }
5712 0 0         if (ST(8)!=&PL_sv_undef)
5713 0           sv_setiv(ST(8),anynul);
5714             OUTPUT:
5715             status
5716             RETVAL
5717              
5718             int
5719             ffgcfs(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
5720             FitsFile * fptr
5721             int colnum
5722             LONGLONG frow
5723             LONGLONG felem
5724             LONGLONG nelem
5725             char ** array = NO_INIT
5726             logical * nularray = NO_INIT
5727             int anynul = NO_INIT
5728             int status
5729             ALIAS:
5730             Astro::FITS::CFITSIO::fits_read_colnull_str = 1
5731             fitsfilePtr::read_colnull_str = 2
5732             PREINIT:
5733             long col_size;
5734             LONGLONG i;
5735             CODE:
5736 0           col_size = column_width(fptr->fptr,colnum);
5737 0           array = get_mortalspace(nelem,TSTRING);
5738 0 0         for (i=0;i
5739 0           array[i] = get_mortalspace(col_size+1,TBYTE);
5740 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5741 0 0         if (ST(6) != &PL_sv_undef) {
5742 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
5743 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
5744             }
5745             else
5746 0           nularray = get_mortalspace(nelem,TLOGICAL);
5747              
5748 0           RETVAL=ffgcfs(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5749             }
5750             else {
5751 0           nularray = get_mortalspace(nelem,TLOGICAL);
5752 0           RETVAL=ffgcfs(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5753 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
5754             }
5755 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TSTRING,fptr->perlyunpacking);
5756 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5757             OUTPUT:
5758             status
5759             RETVAL
5760              
5761             int
5762             ffgcfl(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
5763             FitsFile * fptr
5764             int colnum
5765             LONGLONG frow
5766             LONGLONG felem
5767             LONGLONG nelem
5768             logical * array = NO_INIT
5769             logical * nularray = NO_INIT
5770             int anynul = NO_INIT
5771             int status
5772             ALIAS:
5773             Astro::FITS::CFITSIO::fits_read_colnull_log = 1
5774             fitsfilePtr::read_colnull_log = 2
5775             CODE:
5776 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5777 0 0         if (ST(5) != &PL_sv_undef) {
5778 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
5779 0 0         array = (logical*)SvPV(ST(5),PL_na);
5780             }
5781             else
5782 0           array = get_mortalspace(nelem,TLOGICAL);
5783 0 0         if (ST(6) != &PL_sv_undef) {
5784 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
5785 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
5786             }
5787             else
5788 0           nularray = get_mortalspace(nelem,TLOGICAL);
5789 0           RETVAL=ffgcfl(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5790             }
5791             else {
5792 0           array = get_mortalspace(nelem,TLOGICAL);
5793 0           nularray = get_mortalspace(nelem,TLOGICAL);
5794 0           RETVAL=ffgcfl(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5795 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TLOGICAL,fptr->perlyunpacking);
5796 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
5797             }
5798 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5799             OUTPUT:
5800             status
5801             RETVAL
5802              
5803             int
5804             ffgcfb(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
5805             FitsFile * fptr
5806             int colnum
5807             LONGLONG frow
5808             LONGLONG felem
5809             LONGLONG nelem
5810             byte * array = NO_INIT
5811             logical * nularray = NO_INIT
5812             int anynul = NO_INIT
5813             int status
5814             ALIAS:
5815             Astro::FITS::CFITSIO::fits_read_colnull_byt = 1
5816             fitsfilePtr::read_colnull_byt = 2
5817             CODE:
5818 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5819 0 0         if (ST(5) != &PL_sv_undef) {
5820 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TBYTE));
    0          
5821 0 0         array = (byte*)SvPV(ST(5),PL_na);
5822             }
5823             else
5824 0           array = get_mortalspace(nelem,TBYTE);
5825 0 0         if (ST(6) != &PL_sv_undef) {
5826 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
5827 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
5828             }
5829             else
5830 0           nularray = get_mortalspace(nelem,TLOGICAL);
5831 0           RETVAL=ffgcfb(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5832             }
5833             else {
5834 0           array = get_mortalspace(nelem,TBYTE);
5835 0           nularray = get_mortalspace(nelem,TLOGICAL);
5836 0           RETVAL=ffgcfb(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5837 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TBYTE,fptr->perlyunpacking);
5838 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
5839             }
5840 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5841             OUTPUT:
5842             status
5843             RETVAL
5844              
5845             int
5846             ffgcfsb(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
5847             FitsFile * fptr
5848             int colnum
5849             LONGLONG frow
5850             LONGLONG felem
5851             LONGLONG nelem
5852             signed char* array = NO_INIT
5853             logical * nularray = NO_INIT
5854             int anynul = NO_INIT
5855             int status
5856             ALIAS:
5857             Astro::FITS::CFITSIO::fits_read_colnull_sbyt = 1
5858             fitsfilePtr::read_colnull_sbyt = 2
5859             CODE:
5860 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5861 0 0         if (ST(5) != &PL_sv_undef) {
5862 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TSBYTE));
    0          
5863 0 0         array = (signed char*)SvPV(ST(5),PL_na);
5864             }
5865             else
5866 0           array = get_mortalspace(nelem,TSBYTE);
5867 0 0         if (ST(6) != &PL_sv_undef) {
5868 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
5869 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
5870             }
5871             else
5872 0           nularray = get_mortalspace(nelem,TLOGICAL);
5873 0           RETVAL=ffgcfsb(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5874             }
5875             else {
5876 0           array = get_mortalspace(nelem,TSBYTE);
5877 0           nularray = get_mortalspace(nelem,TLOGICAL);
5878 0           RETVAL=ffgcfsb(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5879 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TSBYTE,fptr->perlyunpacking);
5880 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
5881             }
5882 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5883             OUTPUT:
5884             status
5885             RETVAL
5886              
5887             int
5888             ffgcfui(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
5889             FitsFile * fptr
5890             int colnum
5891             LONGLONG frow
5892             LONGLONG felem
5893             LONGLONG nelem
5894             unsigned short * array = NO_INIT
5895             logical * nularray = NO_INIT
5896             int anynul
5897             int status
5898             ALIAS:
5899             Astro::FITS::CFITSIO::fits_read_colnull_usht = 1
5900             fitsfilePtr::read_colnull_usht = 2
5901             CODE:
5902 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5903 0 0         if (ST(5) != &PL_sv_undef) {
5904 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TUSHORT));
    0          
5905 0 0         array = (unsigned short*)SvPV(ST(5),PL_na);
5906             }
5907             else
5908 0           array = get_mortalspace(nelem,TUSHORT);
5909 0 0         if (ST(6) != &PL_sv_undef) {
5910 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
5911 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
5912             }
5913             else
5914 0           nularray = get_mortalspace(nelem,TLOGICAL);
5915 0           RETVAL=ffgcfui(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5916             }
5917             else {
5918 0           array = get_mortalspace(nelem,TUSHORT);
5919 0           nularray = get_mortalspace(nelem,TLOGICAL);
5920 0           RETVAL=ffgcfui(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5921 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TUSHORT,fptr->perlyunpacking);
5922 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
5923             }
5924 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5925             OUTPUT:
5926             status
5927             RETVAL
5928              
5929             int
5930             ffgcfi(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
5931             FitsFile * fptr
5932             int colnum
5933             LONGLONG frow
5934             LONGLONG felem
5935             LONGLONG nelem
5936             short * array = NO_INIT
5937             logical * nularray = NO_INIT
5938             int anynul = NO_INIT
5939             int status
5940             ALIAS:
5941             Astro::FITS::CFITSIO::fits_read_colnull_sht = 1
5942             fitsfilePtr::read_colnull_sht = 2
5943             CODE:
5944 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5945 0 0         if (ST(5) != &PL_sv_undef) {
5946 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TSHORT));
    0          
5947 0 0         array = (short*)SvPV(ST(5),PL_na);
5948             }
5949             else
5950 0           array = get_mortalspace(nelem,TSHORT);
5951 0 0         if (ST(6) != &PL_sv_undef) {
5952 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
5953 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
5954             }
5955             else
5956 0           nularray = get_mortalspace(nelem,TLOGICAL);
5957 0           RETVAL=ffgcfi(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5958             }
5959             else {
5960 0           array = get_mortalspace(nelem,TSHORT);
5961 0           nularray = get_mortalspace(nelem,TLOGICAL);
5962 0           RETVAL=ffgcfi(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
5963 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TSHORT,fptr->perlyunpacking);
5964 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
5965             }
5966 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
5967             OUTPUT:
5968             status
5969             RETVAL
5970              
5971             int
5972             ffgcfk(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
5973             FitsFile * fptr
5974             int colnum
5975             LONGLONG frow
5976             LONGLONG felem
5977             LONGLONG nelem
5978             int * array = NO_INIT
5979             logical * nularray = NO_INIT
5980             int anynul = NO_INIT
5981             int status
5982             ALIAS:
5983             Astro::FITS::CFITSIO::fits_read_colnull_int = 1
5984             fitsfilePtr::read_colnull_int = 2
5985             CODE:
5986 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
5987 0 0         if (ST(5) != &PL_sv_undef) {
5988 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TINT));
    0          
5989 0 0         array = (int*)SvPV(ST(5),PL_na);
5990             }
5991             else
5992 0           array = get_mortalspace(nelem,TINT);
5993 0 0         if (ST(6) != &PL_sv_undef) {
5994 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
5995 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
5996             }
5997             else
5998 0           nularray = get_mortalspace(nelem,TLOGICAL);
5999 0           RETVAL=ffgcfk(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6000             }
6001             else {
6002 0           array = get_mortalspace(nelem,TINT);
6003 0           nularray = get_mortalspace(nelem,TLOGICAL);
6004 0           RETVAL=ffgcfk(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6005 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TINT,fptr->perlyunpacking);
6006 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6007             }
6008 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6009             OUTPUT:
6010             status
6011             RETVAL
6012              
6013             int
6014             ffgcfuk(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
6015             FitsFile * fptr
6016             int colnum
6017             LONGLONG frow
6018             LONGLONG felem
6019             LONGLONG nelem
6020             unsigned int * array = NO_INIT
6021             logical * nularray = NO_INIT
6022             int anynul = NO_INIT
6023             int status
6024             ALIAS:
6025             Astro::FITS::CFITSIO::fits_read_colnull_uint = 1
6026             fitsfilePtr::read_colnull_uint = 2
6027             CODE:
6028 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6029 0 0         if (ST(5) != &PL_sv_undef) {
6030 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TUINT));
    0          
6031 0 0         array = (unsigned int*)SvPV(ST(5),PL_na);
6032             }
6033             else
6034 0           array = get_mortalspace(nelem,TUINT);
6035 0 0         if (ST(6) != &PL_sv_undef) {
6036 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
6037 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
6038             }
6039             else
6040 0           nularray = get_mortalspace(nelem,TLOGICAL);
6041 0           RETVAL=ffgcfuk(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6042             }
6043             else {
6044 0           array = get_mortalspace(nelem,TUINT);
6045 0           nularray = get_mortalspace(nelem,TLOGICAL);
6046 0           RETVAL=ffgcfuk(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6047 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TUINT,fptr->perlyunpacking);
6048 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6049             }
6050 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6051             OUTPUT:
6052             status
6053             RETVAL
6054              
6055             int
6056             ffgcfj(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
6057             FitsFile * fptr
6058             int colnum
6059             LONGLONG frow
6060             LONGLONG felem
6061             LONGLONG nelem
6062             long * array = NO_INIT
6063             logical * nularray = NO_INIT
6064             int anynul = NO_INIT
6065             int status
6066             ALIAS:
6067             Astro::FITS::CFITSIO::fits_read_colnull_lng = 1
6068             fitsfilePtr::read_colnull_lng = 2
6069             CODE:
6070 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6071 0 0         if (ST(5) != &PL_sv_undef) {
6072 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLONG));
    0          
6073 0 0         array = (long*)SvPV(ST(5),PL_na);
6074             }
6075             else
6076 0           array = get_mortalspace(nelem,TLONG);
6077 0 0         if (ST(6) != &PL_sv_undef) {
6078 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
6079 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
6080             }
6081             else
6082 0           nularray = get_mortalspace(nelem,TLOGICAL);
6083 0           RETVAL=ffgcfj(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6084             }
6085             else {
6086 0           array = get_mortalspace(nelem,TLONG);
6087 0           nularray = get_mortalspace(nelem,TLOGICAL);
6088 0           RETVAL=ffgcfj(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6089 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TLONG,fptr->perlyunpacking);
6090 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6091             }
6092 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6093             OUTPUT:
6094             status
6095             RETVAL
6096              
6097             int
6098             ffgcfjj(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
6099             FitsFile * fptr
6100             int colnum
6101             LONGLONG frow
6102             LONGLONG felem
6103             LONGLONG nelem
6104             LONGLONG* array = NO_INIT
6105             logical * nularray = NO_INIT
6106             int anynul = NO_INIT
6107             int status
6108             ALIAS:
6109             Astro::FITS::CFITSIO::fits_read_colnull_lnglng = 1
6110             fitsfilePtr::read_colnull_lnglng = 2
6111             CODE:
6112 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6113 0 0         if (ST(5) != &PL_sv_undef) {
6114 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLONGLONG));
    0          
6115 0 0         array = (LONGLONG*)SvPV(ST(5),PL_na);
6116             }
6117             else
6118 0           array = get_mortalspace(nelem,TLONGLONG);
6119 0 0         if (ST(6) != &PL_sv_undef) {
6120 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
6121 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
6122             }
6123             else
6124 0           nularray = get_mortalspace(nelem,TLOGICAL);
6125 0           RETVAL=ffgcfjj(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6126             }
6127             else {
6128 0           array = get_mortalspace(nelem,TLONGLONG);
6129 0           nularray = get_mortalspace(nelem,TLOGICAL);
6130 0           RETVAL=ffgcfjj(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6131 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TLONGLONG,fptr->perlyunpacking);
6132 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6133             }
6134 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6135             OUTPUT:
6136             status
6137             RETVAL
6138              
6139             int
6140             ffgcfuj(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
6141             FitsFile * fptr
6142             int colnum
6143             LONGLONG frow
6144             LONGLONG felem
6145             LONGLONG nelem
6146             unsigned long * array = NO_INIT
6147             logical * nularray = NO_INIT
6148             int anynul = NO_INIT
6149             int status
6150             ALIAS:
6151             Astro::FITS::CFITSIO::fits_read_colnull_ulng = 1
6152             fitsfilePtr::read_colnull_ulng = 2
6153             CODE:
6154 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6155 0 0         if (ST(5) != &PL_sv_undef) {
6156 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TULONG));
    0          
6157 0 0         array = (unsigned long*)SvPV(ST(5),PL_na);
6158             }
6159             else
6160 0           array = get_mortalspace(nelem,TULONG);
6161 0 0         if (ST(6) != &PL_sv_undef) {
6162 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
6163 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
6164             }
6165             else
6166 0           nularray = get_mortalspace(nelem,TLOGICAL);
6167 0           RETVAL=ffgcfuj(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6168             }
6169             else {
6170 0           array = get_mortalspace(nelem,TULONG);
6171 0           nularray = get_mortalspace(nelem,TLOGICAL);
6172 0           RETVAL=ffgcfuj(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6173 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TULONG,fptr->perlyunpacking);
6174 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6175             }
6176 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6177             OUTPUT:
6178             status
6179             RETVAL
6180              
6181             int
6182             ffgcfe(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
6183             FitsFile * fptr
6184             int colnum
6185             LONGLONG frow
6186             LONGLONG felem
6187             LONGLONG nelem
6188             float * array = NO_INIT
6189             logical * nularray = NO_INIT
6190             int anynul = NO_INIT
6191             int status
6192             ALIAS:
6193             Astro::FITS::CFITSIO::fits_read_colnull_flt = 1
6194             fitsfilePtr::read_colnull_flt = 2
6195             CODE:
6196 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6197 0 0         if (ST(5) != &PL_sv_undef) {
6198 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TFLOAT));
    0          
6199 0 0         array = (float*)SvPV(ST(5),PL_na);
6200             }
6201             else
6202 0           array = get_mortalspace(nelem,TFLOAT);
6203 0 0         if (ST(6) != &PL_sv_undef) {
6204 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
6205 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
6206             }
6207             else
6208 0           nularray = get_mortalspace(nelem,TLOGICAL);
6209 0           RETVAL=ffgcfe(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6210             }
6211             else {
6212 0           array = get_mortalspace(nelem,TFLOAT);
6213 0           nularray = get_mortalspace(nelem,TLOGICAL);
6214 0           RETVAL=ffgcfe(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6215 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TFLOAT,fptr->perlyunpacking);
6216 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6217             }
6218 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6219             OUTPUT:
6220             status
6221             RETVAL
6222              
6223             int
6224             ffgcfd(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
6225             FitsFile * fptr
6226             int colnum
6227             LONGLONG frow
6228             LONGLONG felem
6229             LONGLONG nelem
6230             double * array = NO_INIT
6231             logical * nularray = NO_INIT
6232             int anynul = NO_INIT
6233             int status
6234             ALIAS:
6235             Astro::FITS::CFITSIO::fits_read_colnull_dbl = 1
6236             fitsfilePtr::read_colnull_dbl = 2
6237             CODE:
6238 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6239 0 0         if (ST(5) != &PL_sv_undef) {
6240 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TDOUBLE));
    0          
6241 0 0         array = (double*)SvPV(ST(5),PL_na);
6242             }
6243             else
6244 0           array = get_mortalspace(nelem,TDOUBLE);
6245 0 0         if (ST(6) != &PL_sv_undef) {
6246 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
6247 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
6248             }
6249             else
6250 0           nularray = get_mortalspace(nelem,TLOGICAL);
6251 0           RETVAL=ffgcfd(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6252             }
6253             else {
6254 0           array = get_mortalspace(nelem,TDOUBLE);
6255 0           nularray = get_mortalspace(nelem,TLOGICAL);
6256 0           RETVAL=ffgcfd(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6257 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TDOUBLE,fptr->perlyunpacking);
6258 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6259             }
6260 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6261             OUTPUT:
6262             status
6263             RETVAL
6264              
6265             int
6266             ffgcfc(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
6267             FitsFile * fptr
6268             int colnum
6269             LONGLONG frow
6270             LONGLONG felem
6271             LONGLONG nelem
6272             float * array = NO_INIT
6273             logical * nularray = NO_INIT
6274             int anynul = NO_INIT
6275             int status
6276             ALIAS:
6277             Astro::FITS::CFITSIO::fits_read_colnull_cmp = 1
6278             fitsfilePtr::read_colnull_cmp = 2
6279             CODE:
6280 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6281 0 0         if (ST(5) != &PL_sv_undef) {
6282 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TCOMPLEX));
    0          
6283 0 0         array = (float*)SvPV(ST(5),PL_na);
6284             }
6285             else
6286 0           array = get_mortalspace(nelem,TCOMPLEX);
6287 0 0         if (ST(6) != &PL_sv_undef) {
6288 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
6289 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
6290             }
6291             else
6292 0           nularray = get_mortalspace(nelem,TLOGICAL);
6293 0           RETVAL=ffgcfc(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6294             }
6295             else {
6296 0           array = get_mortalspace(nelem,TCOMPLEX);
6297 0           nularray = get_mortalspace(nelem,TLOGICAL);
6298 0           RETVAL=ffgcfc(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6299 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TCOMPLEX,fptr->perlyunpacking);
6300 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6301             }
6302 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6303             OUTPUT:
6304             status
6305             RETVAL
6306              
6307             int
6308             ffgcfm(fptr,colnum,frow,felem,nelem,array,nularray,anynul,status)
6309             FitsFile * fptr
6310             int colnum
6311             LONGLONG frow
6312             LONGLONG felem
6313             LONGLONG nelem
6314             double * array = NO_INIT
6315             logical * nularray = NO_INIT
6316             int anynul = NO_INIT
6317             int status
6318             ALIAS:
6319             Astro::FITS::CFITSIO::fits_read_colnull_dblcmp = 1
6320             fitsfilePtr::read_colnull_dblcmp = 2
6321             CODE:
6322 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6323 0 0         if (ST(5) != &PL_sv_undef) {
6324 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TDBLCOMPLEX));
    0          
6325 0 0         array = (double*)SvPV(ST(5),PL_na);
6326             }
6327             else
6328 0           array = get_mortalspace(nelem,TDBLCOMPLEX);
6329 0 0         if (ST(6) != &PL_sv_undef) {
6330 0 0         SvGROW(ST(6),nelem*sizeof_datatype(TLOGICAL));
    0          
6331 0 0         nularray = (logical*)SvPV(ST(6),PL_na);
6332             }
6333             else
6334 0           nularray = get_mortalspace(nelem,TLOGICAL);
6335 0           RETVAL=ffgcfm(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6336             }
6337             else {
6338 0           array = get_mortalspace(nelem,TDBLCOMPLEX);
6339 0           nularray = get_mortalspace(nelem,TLOGICAL);
6340 0           RETVAL=ffgcfm(fptr->fptr,colnum,frow,felem,nelem,array,nularray,&anynul,&status);
6341 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),array,nelem,TDBLCOMPLEX,fptr->perlyunpacking);
6342 0 0         if (ST(6) != &PL_sv_undef) unpack1D(ST(6),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
6343             }
6344 0 0         if (ST(7) != &PL_sv_undef) sv_setiv(ST(7),anynul);
6345             OUTPUT:
6346             status
6347             RETVAL
6348              
6349             int
6350             ffgdes(fptr,colnum,rownum,repeat,offset,status)
6351             fitsfile * fptr
6352             int colnum
6353             LONGLONG rownum
6354             long repeat = NO_INIT
6355             long offset = NO_INIT
6356             int &status
6357             ALIAS:
6358             Astro::FITS::CFITSIO::fits_read_descript = 1
6359             fitsfilePtr::read_descript = 2
6360             CODE:
6361 0           RETVAL = ffgdes(fptr,colnum,rownum,&repeat,&offset,&status);
6362 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),repeat);
6363 0 0         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),offset);
6364             OUTPUT:
6365             status
6366             RETVAL
6367              
6368             int
6369             ffgdesll(fptr,colnum,rownum,repeat,offset,status)
6370             fitsfile * fptr
6371             int colnum
6372             LONGLONG rownum
6373             LONGLONG repeat = NO_INIT
6374             LONGLONG offset = NO_INIT
6375             int &status
6376             ALIAS:
6377             Astro::FITS::CFITSIO::fits_read_descriptll = 1
6378             fitsfilePtr::read_descriptll = 2
6379             CODE:
6380 0           RETVAL = ffgdesll(fptr,colnum,rownum,&repeat,&offset,&status);
6381 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),repeat);
6382 0 0         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),offset);
6383             OUTPUT:
6384             status
6385             RETVAL
6386              
6387             int
6388             ffgdess(fptr,colnum,frow,nrows,repeat,offset,status)
6389             FitsFile * fptr
6390             int colnum
6391             LONGLONG frow
6392             LONGLONG nrows
6393             long * repeat = NO_INIT
6394             long * offset = NO_INIT
6395             int status
6396             ALIAS:
6397             Astro::FITS::CFITSIO::fits_read_descripts = 1
6398             fitsfilePtr::read_descripts = 2
6399             CODE:
6400 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6401 0 0         if (ST(4) != &PL_sv_undef) {
6402 0 0         SvGROW(ST(4),nrows*sizeof_datatype(TLONG));
    0          
6403 0 0         repeat = (long*)SvPV(ST(4),PL_na);
6404             }
6405             else
6406 0           repeat = get_mortalspace(nrows,TLONG);
6407              
6408 0 0         if (ST(5) != &PL_sv_undef) {
6409 0 0         SvGROW(ST(5),nrows*sizeof_datatype(TLONG));
    0          
6410 0 0         offset = (long*)SvPV(ST(5),PL_na);
6411             }
6412             else
6413 0           offset = get_mortalspace(nrows,TLONG);
6414 0           RETVAL=ffgdess(fptr->fptr,colnum,frow,nrows,repeat,offset,&status);
6415             }
6416             else {
6417 0           repeat = get_mortalspace(nrows,TLONG);
6418 0           offset = get_mortalspace(nrows,TLONG);
6419 0           RETVAL=ffgdess(fptr->fptr,colnum,frow,nrows,repeat,offset,&status);
6420 0 0         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),repeat,nrows,TLONG,fptr->perlyunpacking);
6421 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),offset,nrows,TLONG,fptr->perlyunpacking);
6422             }
6423             OUTPUT:
6424             status
6425             RETVAL
6426              
6427             int
6428             ffgdessll(fptr,colnum,frow,nrows,repeat,offset,status)
6429             FitsFile * fptr
6430             int colnum
6431             LONGLONG frow
6432             LONGLONG nrows
6433             LONGLONG* repeat = NO_INIT
6434             LONGLONG* offset = NO_INIT
6435             int status
6436             ALIAS:
6437             Astro::FITS::CFITSIO::fits_read_descriptsll = 1
6438             fitsfilePtr::read_descriptsll = 2
6439             CODE:
6440 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6441 0 0         if (ST(4) != &PL_sv_undef) {
6442 0 0         SvGROW(ST(4),nrows*sizeof_datatype(TLONGLONG));
    0          
6443 0 0         repeat = (LONGLONG*)SvPV(ST(4),PL_na);
6444             }
6445             else
6446 0           repeat = get_mortalspace(nrows,TLONGLONG);
6447              
6448 0 0         if (ST(5) != &PL_sv_undef) {
6449 0 0         SvGROW(ST(5),nrows*sizeof_datatype(TLONGLONG));
    0          
6450 0 0         offset = (LONGLONG*)SvPV(ST(5),PL_na);
6451             }
6452             else
6453 0           offset = get_mortalspace(nrows,TLONGLONG);
6454 0           RETVAL=ffgdessll(fptr->fptr,colnum,frow,nrows,repeat,offset,&status);
6455             }
6456             else {
6457 0           repeat = get_mortalspace(nrows,TLONGLONG);
6458 0           offset = get_mortalspace(nrows,TLONGLONG);
6459 0           RETVAL=ffgdessll(fptr->fptr,colnum,frow,nrows,repeat,offset,&status);
6460 0 0         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),repeat,nrows,TLONGLONG,fptr->perlyunpacking);
6461 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),offset,nrows,TLONGLONG,fptr->perlyunpacking);
6462             }
6463             OUTPUT:
6464             status
6465             RETVAL
6466              
6467             int
6468             ffgmsg(err_msg)
6469             char * err_msg = NO_INIT
6470             ALIAS:
6471             Astro::FITS::CFITSIO::fits_read_errmsg = 1
6472             CODE:
6473 0           err_msg = get_mortalspace(FLEN_ERRMSG,TBYTE);
6474 0           RETVAL = fits_read_errmsg(err_msg);
6475             OUTPUT:
6476             err_msg
6477             RETVAL
6478              
6479             int
6480             ffggpb(fptr,group,felem,nelem,array,status)
6481             FitsFile * fptr
6482             long group
6483             long felem
6484             long nelem
6485             byte * array = NO_INIT
6486             int status
6487             ALIAS:
6488             Astro::FITS::CFITSIO::fits_read_grppar_byt = 1
6489             fitsfilePtr::read_grppar_byt = 2
6490             CODE:
6491 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6492 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TBYTE));
    0          
6493 0 0         RETVAL=ffggpb(fptr->fptr,group,felem,nelem,(byte*)SvPV(ST(4),PL_na),&status);
6494             }
6495             else {
6496 0           array = get_mortalspace(nelem,TBYTE);
6497 0           RETVAL=ffggpb(fptr->fptr,group,felem,nelem,array,&status);
6498 0           unpack1D(ST(4),array,nelem,TBYTE,fptr->perlyunpacking);
6499             }
6500             OUTPUT:
6501             status
6502             RETVAL
6503              
6504             int
6505             ffggpsb(fptr,group,felem,nelem,array,status)
6506             FitsFile * fptr
6507             long group
6508             long felem
6509             long nelem
6510             signed char* array = NO_INIT
6511             int status
6512             ALIAS:
6513             Astro::FITS::CFITSIO::fits_read_grppar_sbyt = 1
6514             fitsfilePtr::read_grppar_sbyt = 2
6515             CODE:
6516 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6517 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TSBYTE));
    0          
6518 0 0         RETVAL=ffggpsb(fptr->fptr,group,felem,nelem,(signed char*)SvPV(ST(4),PL_na),&status);
6519             }
6520             else {
6521 0           array = get_mortalspace(nelem,TSBYTE);
6522 0           RETVAL=ffggpsb(fptr->fptr,group,felem,nelem,array,&status);
6523 0           unpack1D(ST(4),array,nelem,TSBYTE,fptr->perlyunpacking);
6524             }
6525             OUTPUT:
6526             status
6527             RETVAL
6528              
6529             int
6530             ffggpi(fptr,group,felem,nelem,array,status)
6531             FitsFile * fptr
6532             long group
6533             long felem
6534             long nelem
6535             short * array = NO_INIT
6536             int status
6537             ALIAS:
6538             Astro::FITS::CFITSIO::fits_read_grppar_sht = 1
6539             fitsfilePtr::read_grppar_sht = 2
6540             CODE:
6541 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6542 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TSHORT));
    0          
6543 0 0         RETVAL=ffggpi(fptr->fptr,group,felem,nelem,(short*)SvPV(ST(4),PL_na),&status);
6544             }
6545             else {
6546 0           array = get_mortalspace(nelem,TSHORT);
6547 0           RETVAL=ffggpi(fptr->fptr,group,felem,nelem,array,&status);
6548 0           unpack1D(ST(4),array,nelem,TSHORT,fptr->perlyunpacking);
6549             }
6550             OUTPUT:
6551             status
6552             RETVAL
6553              
6554             int
6555             ffggpui(fptr,group,felem,nelem,array,status)
6556             FitsFile * fptr
6557             long group
6558             long felem
6559             long nelem
6560             unsigned short * array = NO_INIT
6561             int status
6562             ALIAS:
6563             Astro::FITS::CFITSIO::fits_read_grppar_usht = 1
6564             fitsfilePtr::read_grppar_usht = 2
6565             CODE:
6566 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6567 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TUSHORT));
    0          
6568 0 0         RETVAL=ffggpui(fptr->fptr,group,felem,nelem,(unsigned short*)SvPV(ST(4),PL_na),&status);
6569             }
6570             else {
6571 0           array = get_mortalspace(nelem,TUSHORT);
6572 0           RETVAL=ffggpui(fptr->fptr,group,felem,nelem,array,&status);
6573 0           unpack1D(ST(4),array,nelem,TUSHORT,fptr->perlyunpacking);
6574             }
6575             OUTPUT:
6576             status
6577             RETVAL
6578              
6579             int
6580             ffggpk(fptr,group,felem,nelem,array,status)
6581             FitsFile * fptr
6582             long group
6583             long felem
6584             long nelem
6585             int * array = NO_INIT
6586             int status
6587             ALIAS:
6588             Astro::FITS::CFITSIO::fits_read_grppar_int = 1
6589             fitsfilePtr::read_grppar_int = 2
6590             CODE:
6591 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6592 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TINT));
    0          
6593 0 0         RETVAL=ffggpk(fptr->fptr,group,felem,nelem,(int*)SvPV(ST(4),PL_na),&status);
6594             }
6595             else {
6596 0           array = get_mortalspace(nelem,TINT);
6597 0           RETVAL=ffggpk(fptr->fptr,group,felem,nelem,array,&status);
6598 0           unpack1D(ST(4),array,nelem,TINT,fptr->perlyunpacking);
6599             }
6600             OUTPUT:
6601             status
6602             RETVAL
6603              
6604             int
6605             ffggpuk(fptr,group,felem,nelem,array,status)
6606             FitsFile * fptr
6607             long group
6608             long felem
6609             long nelem
6610             unsigned int * array = NO_INIT
6611             int status
6612             ALIAS:
6613             Astro::FITS::CFITSIO::fits_read_grppar_uint = 1
6614             fitsfilePtr::read_grppar_uint = 2
6615             CODE:
6616 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6617 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TUINT));
    0          
6618 0 0         RETVAL=ffggpuk(fptr->fptr,group,felem,nelem,(unsigned int*)SvPV(ST(4),PL_na),&status);
6619             }
6620             else {
6621 0           array = get_mortalspace(nelem,TUINT);
6622 0           RETVAL=ffggpuk(fptr->fptr,group,felem,nelem,array,&status);
6623 0           unpack1D(ST(4),array,nelem,TUINT,fptr->perlyunpacking);
6624             }
6625             OUTPUT:
6626             status
6627             RETVAL
6628              
6629             int
6630             ffggpj(fptr,group,felem,nelem,array,status)
6631             FitsFile * fptr
6632             long group
6633             long felem
6634             long nelem
6635             long * array = NO_INIT
6636             int status
6637             ALIAS:
6638             Astro::FITS::CFITSIO::fits_read_grppar_lng = 1
6639             fitsfilePtr::read_grppar_lng = 2
6640             CODE:
6641 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6642 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TLONG));
    0          
6643 0 0         RETVAL=ffggpj(fptr->fptr,group,felem,nelem,(long*)SvPV(ST(4),PL_na),&status);
6644             }
6645             else {
6646 0           array = get_mortalspace(nelem,TLONG);
6647 0           RETVAL=ffggpj(fptr->fptr,group,felem,nelem,array,&status);
6648 0           unpack1D(ST(4),array,nelem,TLONG,fptr->perlyunpacking);
6649             }
6650             OUTPUT:
6651             status
6652             RETVAL
6653              
6654             int
6655             ffggpjj(fptr,group,felem,nelem,array,status)
6656             FitsFile * fptr
6657             long group
6658             long felem
6659             long nelem
6660             LONGLONG* array = NO_INIT
6661             int status
6662             ALIAS:
6663             Astro::FITS::CFITSIO::fits_read_grppar_lnglng = 1
6664             fitsfilePtr::read_grppar_lnglng = 2
6665             CODE:
6666 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6667 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TLONGLONG));
    0          
6668 0 0         RETVAL=ffggpjj(fptr->fptr,group,felem,nelem,(LONGLONG*)SvPV(ST(4),PL_na),&status);
6669             }
6670             else {
6671 0           array = get_mortalspace(nelem,TLONGLONG);
6672 0           RETVAL=ffggpjj(fptr->fptr,group,felem,nelem,array,&status);
6673 0           unpack1D(ST(4),array,nelem,TLONGLONG,fptr->perlyunpacking);
6674             }
6675             OUTPUT:
6676             status
6677             RETVAL
6678              
6679             int
6680             ffggpuj(fptr,group,felem,nelem,array,status)
6681             FitsFile * fptr
6682             long group
6683             long felem
6684             long nelem
6685             unsigned long * array = NO_INIT
6686             int status
6687             ALIAS:
6688             Astro::FITS::CFITSIO::fits_read_grppar_ulng = 1
6689             fitsfilePtr::read_grppar_ulng = 2
6690             CODE:
6691 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6692 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TULONG));
    0          
6693 0 0         RETVAL=ffggpuj(fptr->fptr,group,felem,nelem,(unsigned long*)SvPV(ST(4),PL_na),&status);
6694             }
6695             else {
6696 0           array = get_mortalspace(nelem,TULONG);
6697 0           RETVAL=ffggpuj(fptr->fptr,group,felem,nelem,array,&status);
6698 0           unpack1D(ST(4),array,nelem,TULONG,fptr->perlyunpacking);
6699             }
6700             OUTPUT:
6701             status
6702             RETVAL
6703              
6704             int
6705             ffggpe(fptr,group,felem,nelem,array,status)
6706             FitsFile * fptr
6707             long group
6708             long felem
6709             long nelem
6710             float * array = NO_INIT
6711             int status
6712             ALIAS:
6713             Astro::FITS::CFITSIO::fits_read_grppar_flt = 1
6714             fitsfilePtr::read_grppar_flt = 2
6715             CODE:
6716 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6717 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TFLOAT));
    0          
6718 0 0         RETVAL=ffggpe(fptr->fptr,group,felem,nelem,(float*)SvPV(ST(4),PL_na),&status);
6719             }
6720             else {
6721 0           array = get_mortalspace(nelem,TFLOAT);
6722 0           RETVAL=ffggpe(fptr->fptr,group,felem,nelem,array,&status);
6723 0           unpack1D(ST(4),array,nelem,TFLOAT,fptr->perlyunpacking);
6724             }
6725             OUTPUT:
6726             status
6727             RETVAL
6728              
6729             int
6730             ffggpd(fptr,group,felem,nelem,array,status)
6731             FitsFile * fptr
6732             long group
6733             long felem
6734             long nelem
6735             double * array = NO_INIT
6736             int status
6737             ALIAS:
6738             Astro::FITS::CFITSIO::fits_read_grppar_dbl = 1
6739             fitsfilePtr::read_grppar_dbl = 2
6740             CODE:
6741 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6742 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TDOUBLE));
    0          
6743 0 0         RETVAL=ffggpd(fptr->fptr,group,felem,nelem,(double*)SvPV(ST(4),PL_na),&status);
6744             }
6745             else {
6746 0           array = get_mortalspace(nelem,TDOUBLE);
6747 0           RETVAL=ffggpd(fptr->fptr,group,felem,nelem,array,&status);
6748 0           unpack1D(ST(4),array,nelem,TDOUBLE,fptr->perlyunpacking);
6749             }
6750             OUTPUT:
6751             status
6752             RETVAL
6753              
6754             int
6755             ffgpv(fptr,datatype,felem,nelem,nulval,array,anynul,status)
6756             FitsFile * fptr
6757             int datatype
6758             LONGLONG felem
6759             LONGLONG nelem
6760             SV * nulval
6761             void * array = NO_INIT
6762             int anynul = NO_INIT
6763             int status
6764             ALIAS:
6765             Astro::FITS::CFITSIO::fits_read_img = 1
6766             fitsfilePtr::read_img = 2
6767             CODE:
6768 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6769 0 0         SvGROW(ST(5),nelem*sizeof_datatype(datatype));
    0          
6770 0 0         RETVAL=ffgpv(fptr->fptr,datatype,felem,nelem,pack1D(nulval,datatype),(void*)SvPV(ST(5),PL_na),&anynul,&status);
6771             }
6772             else {
6773 0           array = get_mortalspace(nelem,datatype);
6774 0           RETVAL=ffgpv(fptr->fptr,datatype,felem,nelem,pack1D(nulval,datatype),array,&anynul,&status);
6775 0           unpack1D(ST(5),array,nelem,datatype,fptr->perlyunpacking);
6776             }
6777 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
6778             OUTPUT:
6779             status
6780             RETVAL
6781              
6782             int
6783             ffgics(fptr,xrefval,yrefval,xrefpix,yrefpix,xinc,yinc,rot,coordtype,status)
6784             fitsfile * fptr
6785             double xrefval = NO_INIT
6786             double yrefval = NO_INIT
6787             double xrefpix = NO_INIT
6788             double yrefpix = NO_INIT
6789             double xinc = NO_INIT
6790             double yinc = NO_INIT
6791             double rot = NO_INIT
6792             char * coordtype = NO_INIT
6793             int status
6794             ALIAS:
6795             Astro::FITS::CFITSIO::fits_read_img_coord = 1
6796             fitsfilePtr::read_img_coord = 2
6797             CODE:
6798 0           coordtype = get_mortalspace(FLEN_VALUE,TBYTE);
6799 0           RETVAL=ffgics(fptr,&xrefval,&yrefval,&xrefpix,&yrefpix,&xinc,&yinc,&rot,coordtype,&status);
6800 0 0         if (ST(1) != &PL_sv_undef) sv_setnv(ST(1),xrefval);
6801 0 0         if (ST(2) != &PL_sv_undef) sv_setnv(ST(2),yrefval);
6802 0 0         if (ST(3) != &PL_sv_undef) sv_setnv(ST(3),xrefpix);
6803 0 0         if (ST(4) != &PL_sv_undef) sv_setnv(ST(4),yrefpix);
6804 0 0         if (ST(5) != &PL_sv_undef) sv_setnv(ST(5),xinc);
6805 0 0         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),yinc);
6806 0 0         if (ST(7) != &PL_sv_undef) sv_setnv(ST(7),rot);
6807             OUTPUT:
6808             coordtype
6809             status
6810             RETVAL
6811              
6812             int
6813             ffgicsa(fptr,version,xrefval,yrefval,xrefpix,yrefpix,xinc,yinc,rot,coordtype,status)
6814             fitsfile * fptr
6815             char version
6816             double xrefval = NO_INIT
6817             double yrefval = NO_INIT
6818             double xrefpix = NO_INIT
6819             double yrefpix = NO_INIT
6820             double xinc = NO_INIT
6821             double yinc = NO_INIT
6822             double rot = NO_INIT
6823             char * coordtype = NO_INIT
6824             int status
6825             ALIAS:
6826             Astro::FITS::CFITSIO::fits_read_img_coord_version = 1
6827             fitsfilePtr::read_img_coord_version = 2
6828             CODE:
6829 0           coordtype = get_mortalspace(FLEN_VALUE,TBYTE);
6830 0           RETVAL=ffgics(fptr,&xrefval,&yrefval,&xrefpix,&yrefpix,&xinc,&yinc,&rot,coordtype,&status);
6831 0 0         if (ST(2) != &PL_sv_undef) sv_setnv(ST(2),xrefval);
6832 0 0         if (ST(3) != &PL_sv_undef) sv_setnv(ST(3),yrefval);
6833 0 0         if (ST(4) != &PL_sv_undef) sv_setnv(ST(4),xrefpix);
6834 0 0         if (ST(5) != &PL_sv_undef) sv_setnv(ST(5),yrefpix);
6835 0 0         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),xinc);
6836 0 0         if (ST(7) != &PL_sv_undef) sv_setnv(ST(7),yinc);
6837 0 0         if (ST(8) != &PL_sv_undef) sv_setnv(ST(8),rot);
6838             OUTPUT:
6839             coordtype
6840             status
6841             RETVAL
6842              
6843             int
6844             ffgpvb(fptr,group,felem,nelem,nulval,array,anynul,status)
6845             FitsFile * fptr
6846             long group
6847             LONGLONG felem
6848             LONGLONG nelem
6849             byte nulval
6850             byte * array = NO_INIT
6851             int anynul = NO_INIT
6852             int status
6853             ALIAS:
6854             Astro::FITS::CFITSIO::fits_read_img_byt = 1
6855             fitsfilePtr::read_img_byt = 2
6856             CODE:
6857 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
6858 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TBYTE));
    0          
6859 0 0         RETVAL=ffgpvb(fptr->fptr,group,felem,nelem,nulval,(byte*)SvPV(ST(5),PL_na),&anynul,&status);
6860             }
6861             else {
6862 1           array = get_mortalspace(nelem,TBYTE);
6863 1           RETVAL=ffgpvb(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
6864 1           unpack1D(ST(5),array,nelem,TBYTE,fptr->perlyunpacking);
6865             }
6866 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
6867             OUTPUT:
6868             status
6869             RETVAL
6870              
6871             int
6872             ffgpvsb(fptr,group,felem,nelem,nulval,array,anynul,status)
6873             FitsFile * fptr
6874             long group
6875             LONGLONG felem
6876             LONGLONG nelem
6877             signed char nulval
6878             signed char* array = NO_INIT
6879             int anynul = NO_INIT
6880             int status
6881             ALIAS:
6882             Astro::FITS::CFITSIO::fits_read_img_sbyt = 1
6883             fitsfilePtr::read_img_sbyt = 2
6884             CODE:
6885 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6886 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TSBYTE));
    0          
6887 0 0         RETVAL=ffgpvsb(fptr->fptr,group,felem,nelem,nulval,(signed char*)SvPV(ST(5),PL_na),&anynul,&status);
6888             }
6889             else {
6890 0           array = get_mortalspace(nelem,TSBYTE);
6891 0           RETVAL=ffgpvsb(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
6892 0           unpack1D(ST(5),array,nelem,TSBYTE,fptr->perlyunpacking);
6893             }
6894 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
6895             OUTPUT:
6896             status
6897             RETVAL
6898              
6899             int
6900             ffgpvi(fptr,group,felem,nelem,nulval,array,anynul,status)
6901             FitsFile * fptr
6902             long group
6903             LONGLONG felem
6904             LONGLONG nelem
6905             short nulval
6906             short * array = NO_INIT
6907             int anynul = NO_INIT
6908             int status
6909             ALIAS:
6910             Astro::FITS::CFITSIO::fits_read_img_sht = 1
6911             fitsfilePtr::read_img_sht = 2
6912             CODE:
6913 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
6914 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TSHORT));
    0          
6915 0 0         RETVAL=ffgpvi(fptr->fptr,group,felem,nelem,nulval,(short*)SvPV(ST(5),PL_na),&anynul,&status);
6916             }
6917             else {
6918 1           array = get_mortalspace(nelem,TSHORT);
6919 1           RETVAL=ffgpvi(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
6920 1           unpack1D(ST(5),array,nelem,TSHORT,fptr->perlyunpacking);
6921             }
6922 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
6923             OUTPUT:
6924             status
6925             RETVAL
6926              
6927             int
6928             ffgpvui(fptr,group,felem,nelem,nulval,array,anynul,status)
6929             FitsFile * fptr
6930             long group
6931             LONGLONG felem
6932             LONGLONG nelem
6933             unsigned short nulval
6934             unsigned short * array = NO_INIT
6935             int anynul = NO_INIT
6936             int status
6937             ALIAS:
6938             Astro::FITS::CFITSIO::fits_read_img_usht = 1
6939             fitsfilePtr::read_img_usht = 2
6940             CODE:
6941 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6942 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TUSHORT));
    0          
6943 0 0         RETVAL=ffgpvui(fptr->fptr,group,felem,nelem,nulval,(unsigned short*)SvPV(ST(5),PL_na),&anynul,&status);
6944             }
6945             else {
6946 0           array = get_mortalspace(nelem,TUSHORT);
6947 0           RETVAL=ffgpvui(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
6948 0           unpack1D(ST(5),array,nelem,TUSHORT,fptr->perlyunpacking);
6949             }
6950 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
6951             OUTPUT:
6952             status
6953             RETVAL
6954              
6955             int
6956             ffgpvk(fptr,group,felem,nelem,nulval,array,anynul,status)
6957             FitsFile * fptr
6958             long group
6959             LONGLONG felem
6960             LONGLONG nelem
6961             int nulval
6962             int * array = NO_INIT
6963             int anynul = NO_INIT
6964             int status
6965             ALIAS:
6966             Astro::FITS::CFITSIO::fits_read_img_int = 1
6967             fitsfilePtr::read_img_int = 2
6968             CODE:
6969 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6970 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TINT));
    0          
6971 0 0         RETVAL=ffgpvk(fptr->fptr,group,felem,nelem,nulval,(int*)SvPV(ST(5),PL_na),&anynul,&status);
6972             }
6973             else {
6974 0           array = get_mortalspace(nelem,TINT);
6975 0           RETVAL=ffgpvk(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
6976 0           unpack1D(ST(5),array,nelem,TINT,fptr->perlyunpacking);
6977             }
6978 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
6979             OUTPUT:
6980             status
6981             RETVAL
6982              
6983             int
6984             ffgpvuk(fptr,group,felem,nelem,nulval,array,anynul,status)
6985             FitsFile * fptr
6986             long group
6987             LONGLONG felem
6988             LONGLONG nelem
6989             unsigned int nulval
6990             unsigned int * array = NO_INIT
6991             int anynul = NO_INIT
6992             int status
6993             ALIAS:
6994             Astro::FITS::CFITSIO::fits_read_img_uint = 1
6995             fitsfilePtr::read_img_uint = 2
6996             CODE:
6997 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
6998 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TUINT));
    0          
6999 0 0         RETVAL=ffgpvuk(fptr->fptr,group,felem,nelem,nulval,(unsigned int*)SvPV(ST(5),PL_na),&anynul,&status);
7000             }
7001             else {
7002 0           array = get_mortalspace(nelem,TUINT);
7003 0           RETVAL=ffgpvuk(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
7004 0           unpack1D(ST(5),array,nelem,TUINT,fptr->perlyunpacking);
7005             }
7006 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7007             OUTPUT:
7008             status
7009             RETVAL
7010              
7011             int
7012             ffgpvj(fptr,group,felem,nelem,nulval,array,anynul,status)
7013             FitsFile * fptr
7014             long group
7015             LONGLONG felem
7016             LONGLONG nelem
7017             long nulval
7018             long * array = NO_INIT
7019             int anynul = NO_INIT
7020             int status
7021             ALIAS:
7022             Astro::FITS::CFITSIO::fits_read_img_lng = 1
7023             fitsfilePtr::read_img_lng = 2
7024             CODE:
7025 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
7026 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLONG));
    0          
7027 0 0         RETVAL=ffgpvj(fptr->fptr,group,felem,nelem,nulval,(long*)SvPV(ST(5),PL_na),&anynul,&status);
7028             }
7029             else {
7030 1           array = get_mortalspace(nelem,TLONG);
7031 1           RETVAL=ffgpvj(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
7032 1           unpack1D(ST(5),array,nelem,TLONG,fptr->perlyunpacking);
7033             }
7034 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7035             OUTPUT:
7036             status
7037             RETVAL
7038              
7039             int
7040             ffgpvjj(fptr,group,felem,nelem,nulval,array,anynul,status)
7041             FitsFile * fptr
7042             long group
7043             LONGLONG felem
7044             LONGLONG nelem
7045             LONGLONG nulval
7046             LONGLONG* array = NO_INIT
7047             int anynul = NO_INIT
7048             int status
7049             ALIAS:
7050             Astro::FITS::CFITSIO::fits_read_img_lnglng = 1
7051             fitsfilePtr::read_img_lnglng = 2
7052             CODE:
7053 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7054 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLONGLONG));
    0          
7055 0 0         RETVAL=ffgpvjj(fptr->fptr,group,felem,nelem,nulval,(LONGLONG*)SvPV(ST(5),PL_na),&anynul,&status);
7056             }
7057             else {
7058 0           array = get_mortalspace(nelem,TLONGLONG);
7059 0           RETVAL=ffgpvjj(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
7060 0           unpack1D(ST(5),array,nelem,TLONGLONG,fptr->perlyunpacking);
7061             }
7062 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7063             OUTPUT:
7064             status
7065             RETVAL
7066              
7067             int
7068             ffgpvuj(fptr,group,felem,nelem,nulval,array,anynul,status)
7069             FitsFile * fptr
7070             long group
7071             LONGLONG felem
7072             LONGLONG nelem
7073             unsigned long nulval
7074             unsigned long * array = NO_INIT
7075             int anynul = NO_INIT
7076             int status
7077             ALIAS:
7078             Astro::FITS::CFITSIO::fits_read_img_ulng = 1
7079             fitsfilePtr::read_img_ulng = 2
7080             CODE:
7081 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7082 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TULONG));
    0          
7083 0 0         RETVAL=ffgpvuj(fptr->fptr,group,felem,nelem,nulval,(unsigned long*)SvPV(ST(5),PL_na),&anynul,&status);
7084             }
7085             else {
7086 0           array = get_mortalspace(nelem,TULONG);
7087 0           RETVAL=ffgpvuj(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
7088 0           unpack1D(ST(5),array,nelem,TULONG,fptr->perlyunpacking);
7089             }
7090 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7091             OUTPUT:
7092             status
7093             RETVAL
7094              
7095             int
7096             ffgpve(fptr,group,felem,nelem,nulval,array,anynul,status)
7097             FitsFile * fptr
7098             long group
7099             LONGLONG felem
7100             LONGLONG nelem
7101             float nulval
7102             float * array = NO_INIT
7103             int anynul = NO_INIT
7104             int status
7105             ALIAS:
7106             Astro::FITS::CFITSIO::fits_read_img_flt = 1
7107             fitsfilePtr::read_img_flt = 2
7108             CODE:
7109 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
7110 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TFLOAT));
    0          
7111 0 0         RETVAL=ffgpve(fptr->fptr,group,felem,nelem,nulval,(float*)SvPV(ST(5),PL_na),&anynul,&status);
7112             }
7113             else {
7114 1           array = get_mortalspace(nelem,TFLOAT);
7115 1           RETVAL=ffgpve(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
7116 1           unpack1D(ST(5),array,nelem,TFLOAT,fptr->perlyunpacking);
7117             }
7118 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7119             OUTPUT:
7120             status
7121             RETVAL
7122              
7123             int
7124             ffgpvd(fptr,group,felem,nelem,nulval,array,anynul,status)
7125             FitsFile * fptr
7126             long group
7127             LONGLONG felem
7128             LONGLONG nelem
7129             double nulval
7130             double * array = NO_INIT
7131             int anynul = NO_INIT
7132             int status
7133             ALIAS:
7134             Astro::FITS::CFITSIO::fits_read_img_dbl = 1
7135             fitsfilePtr::read_img_dbl = 2
7136             CODE:
7137 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
7138 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TDOUBLE));
    0          
7139 0 0         RETVAL=ffgpvd(fptr->fptr,group,felem,nelem,nulval,(double*)SvPV(ST(5),PL_na),&anynul,&status);
7140             }
7141             else {
7142 1           array = get_mortalspace(nelem,TDOUBLE);
7143 1           RETVAL=ffgpvd(fptr->fptr,group,felem,nelem,nulval,array,&anynul,&status);
7144 1           unpack1D(ST(5),array,nelem,TDOUBLE,fptr->perlyunpacking);
7145             }
7146 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7147             OUTPUT:
7148             status
7149             RETVAL
7150              
7151             int
7152             ffghpr(fptr,simple,bitpix,naxis,naxes,pcount,gcount,extend,status)
7153             FitsFile * fptr
7154             int simple = NO_INIT
7155             int bitpix = NO_INIT
7156             int naxis = NO_INIT
7157             long * naxes = NO_INIT
7158             long pcount = NO_INIT
7159             long gcount = NO_INIT
7160             int extend = NO_INIT
7161             int status
7162             ALIAS:
7163             Astro::FITS::CFITSIO::fits_read_imghdr = 1
7164             fitsfilePtr::read_imghdr = 2
7165             CODE:
7166              
7167 1 50         if (ST(4)!=&PL_sv_undef) { /* caller wants naxes to be set */
7168 1           ffghpr(fptr->fptr,0,NULL,NULL,&naxis,NULL,NULL,NULL,NULL,&status);
7169 1           naxes = get_mortalspace(naxis,TLONG);
7170             } else {
7171 0           naxes = NULL;
7172 0           naxis = 0;
7173             }
7174 1           RETVAL=ffghpr(fptr->fptr,naxis,&simple,&bitpix,&naxis,naxes,&pcount,&gcount,&extend,&status);
7175              
7176 1 50         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),simple);
7177 1 50         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),bitpix);
7178 1 50         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),naxis);
7179 1 50         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),naxes,naxis,TLONG,
7180             fptr->perlyunpacking);
7181 1 50         if (ST(5)!=&PL_sv_undef) sv_setiv(ST(5),pcount);
7182 1 50         if (ST(6)!=&PL_sv_undef) sv_setiv(ST(6),gcount);
7183 1 50         if (ST(7)!=&PL_sv_undef) sv_setiv(ST(7),extend);
7184             OUTPUT:
7185             status
7186             RETVAL
7187              
7188             int
7189             ffghprll(fptr,simple,bitpix,naxis,naxes,pcount,gcount,extend,status)
7190             FitsFile * fptr
7191             int simple = NO_INIT
7192             int bitpix = NO_INIT
7193             int naxis = NO_INIT
7194             LONGLONG * naxes = NO_INIT
7195             long pcount = NO_INIT
7196             long gcount = NO_INIT
7197             int extend = NO_INIT
7198             int status
7199             ALIAS:
7200             Astro::FITS::CFITSIO::fits_read_imghdrll = 1
7201             fitsfilePtr::read_imghdrll = 2
7202             CODE:
7203              
7204 0 0         if (ST(4)!=&PL_sv_undef) { /* caller wants naxes to be set */
7205 0           ffghprll(fptr->fptr,0,NULL,NULL,&naxis,NULL,NULL,NULL,NULL,&status);
7206 0           naxes = get_mortalspace(naxis,TLONGLONG);
7207             } else {
7208 0           naxes = NULL;
7209 0           naxis = 0;
7210             }
7211 0           RETVAL=ffghprll(fptr->fptr,naxis,&simple,&bitpix,&naxis,naxes,&pcount,&gcount,&extend,&status);
7212              
7213 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),simple);
7214 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),bitpix);
7215 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),naxis);
7216 0 0         if (ST(4)!=&PL_sv_undef) unpack1D(ST(4),naxes,naxis,TLONGLONG,
7217             fptr->perlyunpacking);
7218 0 0         if (ST(5)!=&PL_sv_undef) sv_setiv(ST(5),pcount);
7219 0 0         if (ST(6)!=&PL_sv_undef) sv_setiv(ST(6),gcount);
7220 0 0         if (ST(7)!=&PL_sv_undef) sv_setiv(ST(7),extend);
7221             OUTPUT:
7222             status
7223             RETVAL
7224              
7225             int
7226             ffgpf(fptr,datatype,felem,nelem,array,nularray,anynul,status)
7227             FitsFile * fptr
7228             int datatype
7229             LONGLONG felem
7230             LONGLONG nelem
7231             void * array = NO_INIT
7232             logical * nularray = NO_INIT
7233             int anynul = NO_INIT
7234             int status
7235             ALIAS:
7236             Astro::FITS::CFITSIO::fits_read_imgnull = 1
7237             fitsfilePtr::read_imgnull = 2
7238             CODE:
7239 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7240 0 0         if (ST(4)!=&PL_sv_undef) {
7241 0 0         SvGROW(ST(4),nelem*sizeof_datatype(datatype));
    0          
7242 0 0         array = (void*)SvPV(ST(4),PL_na);
7243             }
7244             else
7245 0           array = get_mortalspace(nelem,datatype);
7246 0 0         if (ST(5)!=&PL_sv_undef) {
7247 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7248 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7249             }
7250             else
7251 0           nularray = get_mortalspace(nelem,TLOGICAL);
7252 0           RETVAL=ffgpf(fptr->fptr,datatype,felem,nelem,array,nularray,&anynul,&status);
7253              
7254             }
7255             else {
7256 0           array = get_mortalspace(nelem,datatype);
7257 0           nularray = get_mortalspace(nelem,TLOGICAL);
7258 0           RETVAL=ffgpf(fptr->fptr,datatype,felem,nelem,array,nularray,&anynul,&status);
7259 0 0         if (ST(4)!=&PL_sv_undef)
7260 0           unpack1D(ST(4),array,nelem,datatype,fptr->perlyunpacking);
7261 0 0         if (ST(5)!=&PL_sv_undef)
7262 0           unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7263             }
7264 0 0         if (ST(6)!=&PL_sv_undef) sv_setiv(ST(6),anynul);
7265             OUTPUT:
7266             status
7267             RETVAL
7268              
7269             int
7270             ffgpfb(fptr,group,felem,nelem,array,nularray,anynul,status)
7271             FitsFile * fptr
7272             long group
7273             LONGLONG felem
7274             LONGLONG nelem
7275             byte * array = NO_INIT
7276             logical * nularray = NO_INIT
7277             int anynul = NO_INIT
7278             int status
7279             ALIAS:
7280             Astro::FITS::CFITSIO::fits_read_imgnull_byt = 1
7281             fitsfilePtr::read_imgnull_byt = 2
7282             CODE:
7283 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
7284 0 0         if (ST(4) != &PL_sv_undef) {
7285 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TBYTE));
    0          
7286 0 0         array = (byte*)SvPV(ST(4),PL_na);
7287             }
7288             else
7289 0           array = get_mortalspace(nelem,TBYTE);
7290 0 0         if (ST(5) != &PL_sv_undef) {
7291 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7292 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7293             }
7294             else
7295 0           nularray = get_mortalspace(nelem,TLOGICAL);
7296 0           RETVAL=ffgpfb(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7297             }
7298             else {
7299 1           array = get_mortalspace(nelem,TBYTE);
7300 1           nularray = get_mortalspace(nelem,TLOGICAL);
7301 1           RETVAL=ffgpfb(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7302 1 50         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TBYTE,fptr->perlyunpacking);
7303 1 50         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7304             }
7305 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7306             OUTPUT:
7307             status
7308             RETVAL
7309              
7310             int
7311             ffgpfsb(fptr,group,felem,nelem,array,nularray,anynul,status)
7312             FitsFile * fptr
7313             long group
7314             LONGLONG felem
7315             LONGLONG nelem
7316             signed char* array = NO_INIT
7317             logical * nularray = NO_INIT
7318             int anynul = NO_INIT
7319             int status
7320             ALIAS:
7321             Astro::FITS::CFITSIO::fits_read_imgnull_sbyt = 1
7322             fitsfilePtr::read_imgnull_sbyt = 2
7323             CODE:
7324 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7325 0 0         if (ST(4) != &PL_sv_undef) {
7326 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TSBYTE));
    0          
7327 0 0         array = (signed char*)SvPV(ST(4),PL_na);
7328             }
7329             else
7330 0           array = get_mortalspace(nelem,TSBYTE);
7331 0 0         if (ST(5) != &PL_sv_undef) {
7332 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7333 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7334             }
7335             else
7336 0           nularray = get_mortalspace(nelem,TLOGICAL);
7337 0           RETVAL=ffgpfsb(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7338             }
7339             else {
7340 0           array = get_mortalspace(nelem,TSBYTE);
7341 0           nularray = get_mortalspace(nelem,TLOGICAL);
7342 0           RETVAL=ffgpfsb(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7343 0 0         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TSBYTE,fptr->perlyunpacking);
7344 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7345             }
7346 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7347             OUTPUT:
7348             status
7349             RETVAL
7350              
7351             int
7352             ffgpfi(fptr,group,felem,nelem,array,nularray,anynul,status)
7353             FitsFile * fptr
7354             long group
7355             LONGLONG felem
7356             LONGLONG nelem
7357             short * array = NO_INIT
7358             logical * nularray = NO_INIT
7359             int anynul = NO_INIT
7360             int status
7361             ALIAS:
7362             Astro::FITS::CFITSIO::fits_read_imgnull_sht = 1
7363             fitsfilePtr::read_imgnull_sht = 2
7364             CODE:
7365 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
7366 0 0         if (ST(4) != &PL_sv_undef) {
7367 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TSHORT));
    0          
7368 0 0         array = (short*)SvPV(ST(4),PL_na);
7369             }
7370             else
7371 0           array = get_mortalspace(nelem,TSHORT);
7372 0 0         if (ST(5) != &PL_sv_undef) {
7373 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7374 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7375             }
7376             else
7377 0           nularray = get_mortalspace(nelem,TLOGICAL);
7378 0           RETVAL=ffgpfi(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7379             }
7380             else {
7381 1           array = get_mortalspace(nelem,TSHORT);
7382 1           nularray = get_mortalspace(nelem,TLOGICAL);
7383 1           RETVAL=ffgpfi(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7384 1 50         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TSHORT,fptr->perlyunpacking);
7385 1 50         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7386             }
7387 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7388             OUTPUT:
7389             status
7390             RETVAL
7391              
7392             int
7393             ffgpfui(fptr,group,felem,nelem,array,nularray,anynul,status)
7394             FitsFile * fptr
7395             long group
7396             LONGLONG felem
7397             LONGLONG nelem
7398             unsigned short * array = NO_INIT
7399             logical * nularray = NO_INIT
7400             int anynul = NO_INIT
7401             int status
7402             ALIAS:
7403             Astro::FITS::CFITSIO::fits_read_imgnull_usht = 1
7404             fitsfilePtr::read_imgnull_usht = 2
7405             CODE:
7406 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7407 0 0         if (ST(4) != &PL_sv_undef) {
7408 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TUSHORT));
    0          
7409 0 0         array = (unsigned short*)SvPV(ST(4),PL_na);
7410             }
7411             else
7412 0           array = get_mortalspace(nelem,TUSHORT);
7413 0 0         if (ST(5) != &PL_sv_undef) {
7414 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7415 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7416             }
7417             else
7418 0           nularray = get_mortalspace(nelem,TLOGICAL);
7419 0           RETVAL=ffgpfui(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7420             }
7421             else {
7422 0           array = get_mortalspace(nelem,TUSHORT);
7423 0           nularray = get_mortalspace(nelem,TLOGICAL);
7424 0           RETVAL=ffgpfui(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7425 0 0         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TUSHORT,fptr->perlyunpacking);
7426 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7427             }
7428 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7429             OUTPUT:
7430             status
7431             RETVAL
7432              
7433             int
7434             ffgpfk(fptr,group,felem,nelem,array,nularray,anynul,status)
7435             FitsFile * fptr
7436             long group
7437             LONGLONG felem
7438             LONGLONG nelem
7439             int * array = NO_INIT
7440             logical * nularray = NO_INIT
7441             int anynul = NO_INIT
7442             int status
7443             ALIAS:
7444             Astro::FITS::CFITSIO::fits_read_imgnull_int = 1
7445             fitsfilePtr::read_imgnull_int = 2
7446             CODE:
7447 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7448 0 0         if (ST(4) != &PL_sv_undef) {
7449 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TINT));
    0          
7450 0 0         array = (int*)SvPV(ST(4),PL_na);
7451             }
7452             else
7453 0           array = get_mortalspace(nelem,TINT);
7454 0 0         if (ST(5) != &PL_sv_undef) {
7455 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7456 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7457             }
7458             else
7459 0           nularray = get_mortalspace(nelem,TLOGICAL);
7460 0           RETVAL=ffgpfk(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7461             }
7462             else {
7463 0           array = get_mortalspace(nelem,TINT);
7464 0           nularray = get_mortalspace(nelem,TLOGICAL);
7465 0           RETVAL=ffgpfk(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7466 0 0         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TINT,fptr->perlyunpacking);
7467 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7468             }
7469 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7470             OUTPUT:
7471             status
7472             RETVAL
7473              
7474             int
7475             ffgpfuk(fptr,group,felem,nelem,array,nularray,anynul,status)
7476             FitsFile * fptr
7477             long group
7478             LONGLONG felem
7479             LONGLONG nelem
7480             unsigned int * array = NO_INIT
7481             logical * nularray = NO_INIT
7482             int anynul = NO_INIT
7483             int status
7484             ALIAS:
7485             Astro::FITS::CFITSIO::fits_read_imgnull_uint = 1
7486             fitsfilePtr::read_imgnull_uint = 2
7487             CODE:
7488 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7489 0 0         if (ST(4) != &PL_sv_undef) {
7490 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TUINT));
    0          
7491 0 0         array = (unsigned int*)SvPV(ST(4),PL_na);
7492             }
7493             else
7494 0           array = get_mortalspace(nelem,TUINT);
7495 0 0         if (ST(5) != &PL_sv_undef) {
7496 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7497 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7498             }
7499             else
7500 0           nularray = get_mortalspace(nelem,TLOGICAL);
7501 0           RETVAL=ffgpfuk(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7502             }
7503             else {
7504 0           array = get_mortalspace(nelem,TUINT);
7505 0           nularray = get_mortalspace(nelem,TLOGICAL);
7506 0           RETVAL=ffgpfuk(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7507 0 0         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TUINT,fptr->perlyunpacking);
7508 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7509             }
7510 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7511             OUTPUT:
7512             status
7513             RETVAL
7514              
7515             int
7516             ffgpfj(fptr,group,felem,nelem,array,nularray,anynul,status)
7517             FitsFile * fptr
7518             long group
7519             LONGLONG felem
7520             LONGLONG nelem
7521             long * array = NO_INIT
7522             logical * nularray = NO_INIT
7523             int anynul = NO_INIT
7524             int status
7525             ALIAS:
7526             Astro::FITS::CFITSIO::fits_read_imgnull_lng = 1
7527             fitsfilePtr::read_imgnull_lng = 2
7528             CODE:
7529 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
7530 0 0         if (ST(4) != &PL_sv_undef) {
7531 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TLONG));
    0          
7532 0 0         array = (long*)SvPV(ST(4),PL_na);
7533             }
7534             else
7535 0           array = get_mortalspace(nelem,TLONG);
7536 0 0         if (ST(5) != &PL_sv_undef) {
7537 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7538 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7539             }
7540             else
7541 0           nularray = get_mortalspace(nelem,TLOGICAL);
7542 0           RETVAL=ffgpfj(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7543             }
7544             else {
7545 1           array = get_mortalspace(nelem,TLONG);
7546 1           nularray = get_mortalspace(nelem,TLOGICAL);
7547 1           RETVAL=ffgpfj(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7548 1 50         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TLONG,fptr->perlyunpacking);
7549 1 50         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7550             }
7551 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7552             OUTPUT:
7553             status
7554             RETVAL
7555              
7556             int
7557             ffgpfjj(fptr,group,felem,nelem,array,nularray,anynul,status)
7558             FitsFile * fptr
7559             long group
7560             LONGLONG felem
7561             LONGLONG nelem
7562             LONGLONG* array = NO_INIT
7563             logical * nularray = NO_INIT
7564             int anynul = NO_INIT
7565             int status
7566             ALIAS:
7567             Astro::FITS::CFITSIO::fits_read_imgnull_lnglng = 1
7568             fitsfilePtr::read_imgnull_lnglng = 2
7569             CODE:
7570 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7571 0 0         if (ST(4) != &PL_sv_undef) {
7572 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TLONGLONG));
    0          
7573 0 0         array = (LONGLONG*)SvPV(ST(4),PL_na);
7574             }
7575             else
7576 0           array = get_mortalspace(nelem,TLONGLONG);
7577 0 0         if (ST(5) != &PL_sv_undef) {
7578 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7579 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7580             }
7581             else
7582 0           nularray = get_mortalspace(nelem,TLOGICAL);
7583 0           RETVAL=ffgpfjj(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7584             }
7585             else {
7586 0           array = get_mortalspace(nelem,TLONGLONG);
7587 0           nularray = get_mortalspace(nelem,TLOGICAL);
7588 0           RETVAL=ffgpfjj(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7589 0 0         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TLONGLONG,fptr->perlyunpacking);
7590 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7591             }
7592 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7593             OUTPUT:
7594             status
7595             RETVAL
7596              
7597             int
7598             ffgpfuj(fptr,group,felem,nelem,array,nularray,anynul,status)
7599             FitsFile * fptr
7600             long group
7601             LONGLONG felem
7602             LONGLONG nelem
7603             unsigned long * array = NO_INIT
7604             logical * nularray = NO_INIT
7605             int anynul = NO_INIT
7606             int status
7607             ALIAS:
7608             Astro::FITS::CFITSIO::fits_read_imgnull_ulng = 1
7609             fitsfilePtr::read_imgnull_ulng = 2
7610             CODE:
7611 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
7612 0 0         if (ST(4) != &PL_sv_undef) {
7613 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TULONG));
    0          
7614 0 0         array = (unsigned long*)SvPV(ST(4),PL_na);
7615             }
7616             else
7617 0           array = get_mortalspace(nelem,TULONG);
7618 0 0         if (ST(5) != &PL_sv_undef) {
7619 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7620 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7621             }
7622             else
7623 0           nularray = get_mortalspace(nelem,TLOGICAL);
7624 0           RETVAL=ffgpfuj(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7625             }
7626             else {
7627 0           array = get_mortalspace(nelem,TULONG);
7628 0           nularray = get_mortalspace(nelem,TLOGICAL);
7629 0           RETVAL=ffgpfuj(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7630 0 0         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TBYTE,fptr->perlyunpacking);
7631 0 0         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7632             }
7633 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7634             OUTPUT:
7635             status
7636             RETVAL
7637              
7638             int
7639             ffgpfe(fptr,group,felem,nelem,array,nularray,anynul,status)
7640             FitsFile * fptr
7641             long group
7642             LONGLONG felem
7643             LONGLONG nelem
7644             float * array = NO_INIT
7645             logical * nularray = NO_INIT
7646             int anynul = NO_INIT
7647             int status
7648             ALIAS:
7649             Astro::FITS::CFITSIO::fits_read_imgnull_flt = 1
7650             fitsfilePtr::read_imgnull_flt = 2
7651             CODE:
7652 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
7653 0 0         if (ST(4) != &PL_sv_undef) {
7654 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TFLOAT));
    0          
7655 0 0         array = (float*)SvPV(ST(4),PL_na);
7656             }
7657             else
7658 0           array = get_mortalspace(nelem,TFLOAT);
7659 0 0         if (ST(5) != &PL_sv_undef) {
7660 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7661 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7662             }
7663             else
7664 0           nularray = get_mortalspace(nelem,TLOGICAL);
7665 0           RETVAL=ffgpfe(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7666             }
7667             else {
7668 1           array = get_mortalspace(nelem,TFLOAT);
7669 1           nularray = get_mortalspace(nelem,TLOGICAL);
7670 1           RETVAL=ffgpfe(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7671 1 50         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TFLOAT,fptr->perlyunpacking);
7672 1 50         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7673             }
7674 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7675             OUTPUT:
7676             status
7677             RETVAL
7678              
7679             int
7680             ffgpfd(fptr,group,felem,nelem,array,nularray,anynul,status)
7681             FitsFile * fptr
7682             long group
7683             LONGLONG felem
7684             LONGLONG nelem
7685             double * array = NO_INIT
7686             logical * nularray = NO_INIT
7687             int anynul = NO_INIT
7688             int status
7689             ALIAS:
7690             Astro::FITS::CFITSIO::fits_read_imgnull_dbl = 1
7691             fitsfilePtr::read_imgnull_dbl = 2
7692             CODE:
7693 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
7694 0 0         if (ST(4) != &PL_sv_undef) {
7695 0 0         SvGROW(ST(4),nelem*sizeof_datatype(TDOUBLE));
    0          
7696 0 0         array = (double*)SvPV(ST(4),PL_na);
7697             }
7698             else
7699 0           array = get_mortalspace(nelem,TDOUBLE);
7700 0 0         if (ST(5) != &PL_sv_undef) {
7701 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
7702 0 0         nularray = (logical*)SvPV(ST(5),PL_na);
7703             }
7704             else
7705 0           nularray = get_mortalspace(nelem,TLOGICAL);
7706 0           RETVAL=ffgpfd(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7707             }
7708             else {
7709 1           array = get_mortalspace(nelem,TDOUBLE);
7710 1           nularray = get_mortalspace(nelem,TLOGICAL);
7711 1           RETVAL=ffgpfd(fptr->fptr,group,felem,nelem,array,nularray,&anynul,&status);
7712 1 50         if (ST(4) != &PL_sv_undef) unpack1D(ST(4),array,nelem,TDOUBLE,fptr->perlyunpacking);
7713 1 50         if (ST(5) != &PL_sv_undef) unpack1D(ST(5),nularray,nelem,TLOGICAL,fptr->perlyunpacking);
7714             }
7715 1 50         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),anynul);
7716             OUTPUT:
7717             status
7718             RETVAL
7719              
7720             int
7721             ffgstr(fptr, string, card, status)
7722             fitsfile * fptr
7723             char * string
7724             char * card = NO_INIT
7725             int &status
7726             ALIAS:
7727             Astro::FITS::CFITSIO::fits_read_str = 1
7728             fitsfilePtr::read_str = 2
7729             OUTPUT:
7730             card
7731             status
7732              
7733             int
7734             ffgksl(fptr,keyname,length,status)
7735             fitsfile * fptr
7736             const char * keyname
7737             int &length = NO_INIT
7738             int &status
7739             ALIAS:
7740             Astro::FITS::CFITSIO::fits_get_key_strlen = 1
7741             fitsfilePtr::get_key_strlen = 2
7742             OUTPUT:
7743             length
7744             status
7745              
7746             int
7747             ffgsky(fptr,keyname,firstchar,maxchar,value,valuelen,comm,status)
7748             fitsfile * fptr
7749             const char * keyname
7750             int firstchar
7751             int maxchar
7752             char * value = NO_INIT
7753             int valuelen = NO_INIT
7754             char * comm = NO_INIT
7755             int status
7756             ALIAS:
7757             Astro::FITS::CFITSIO::fits_read_string_key = 1
7758             fitsfilePtr::read_key_string = 2
7759             CODE:
7760 0 0         value = (ST(4) != &PL_sv_undef) ? get_mortalspace(maxchar+1,TBYTE) : NULL;
7761 0 0         comm = (ST(6) != &PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7762 0           RETVAL=ffgsky(fptr,keyname,firstchar,maxchar,value,&valuelen,comm,&status);
7763 0 0         if (ST(5) != &PL_sv_undef) sv_setiv(ST(5),valuelen);
7764             OUTPUT:
7765             value
7766             comm
7767             status
7768             RETVAL
7769              
7770             int
7771             ffdstr(fptr, string, status)
7772             fitsfile * fptr
7773             char * string
7774             int &status
7775             ALIAS:
7776             Astro::FITS::CFITSIO::fits_delete_str = 1
7777             fitsfilePtr::delete_str = 2
7778             OUTPUT:
7779             status
7780              
7781             int
7782             ffgky(fptr,datatype,keyname,value,comment,status)
7783             fitsfile * fptr
7784             int datatype
7785             char * keyname
7786             void * value = NO_INIT
7787             char * comment = NO_INIT
7788             int status
7789             ALIAS:
7790             Astro::FITS::CFITSIO::fits_read_key = 1
7791             fitsfilePtr::read_key = 2
7792             CODE:
7793 8 50         comment=(ST(4)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7794 8           switch (datatype) {
7795             case TSTRING:
7796 1           value = get_mortalspace(FLEN_VALUE,TBYTE); break;
7797             case TLOGICAL:
7798 1           value = get_mortalspace(1,TINT); break;
7799             default:
7800 6           value = get_mortalspace(1,datatype);
7801             }
7802 8           RETVAL=ffgky(fptr,datatype,keyname,value,comment,&status);
7803 8 100         if (datatype == TLOGICAL)
7804 1           datatype = TINT;
7805 8           unpackScalar(ST(3),value,datatype);
7806             OUTPUT:
7807             comment
7808             status
7809             RETVAL
7810              
7811             int
7812             ffgkyt(fptr,keyname,intval,frac,comment,status)
7813             fitsfile * fptr
7814             char * keyname
7815             long intval = NO_INIT
7816             double frac = NO_INIT
7817             char * comment = NO_INIT
7818             int status
7819             ALIAS:
7820             Astro::FITS::CFITSIO::fits_read_key_triple = 1
7821             fitsfilePtr::read_key_triple = 2
7822             CODE:
7823 1 50         comment=(ST(4)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7824 1           RETVAL=ffgkyt(fptr,keyname,&intval,&frac,comment,&status);
7825 1 50         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),intval);
7826 1 50         if (ST(3) != &PL_sv_undef) sv_setnv(ST(3),frac);
7827             OUTPUT:
7828             comment
7829             status
7830             RETVAL
7831              
7832             int
7833             ffgunt(fptr,keyname,unit,status)
7834             fitsfile * fptr
7835             char * keyname
7836             char * unit = NO_INIT
7837             int status
7838             ALIAS:
7839             Astro::FITS::CFITSIO::fits_read_key_unit = 1
7840             fitsfilePtr::read_key_unit = 2
7841             CODE:
7842 3           unit = get_mortalspace(FLEN_VALUE,TBYTE);
7843 3           RETVAL=ffgunt(fptr,keyname,unit,&status);
7844             OUTPUT:
7845             unit
7846             status
7847             RETVAL
7848              
7849             int
7850             ffgkcsl(fptr, keyname, length, comlength, status)
7851             fitsfile * fptr
7852             const char * keyname
7853             int &length
7854             int &comlength
7855             int &status
7856             ALIAS:
7857             Astro::FITS::CFITSIO::fits_get_key_com_strlen = 1
7858             fitsfilePtr::get_key_com_strlen = 2
7859             OUTPUT:
7860             length
7861             comlength
7862             status
7863              
7864             int
7865             ffgkls(fptr,keyname,longstr,comment,status)
7866             fitsfile * fptr
7867             char * keyname
7868             char * longstr = NO_INIT
7869             char * comment = NO_INIT
7870             int status
7871             ALIAS:
7872             Astro::FITS::CFITSIO::fits_read_key_longstr = 1
7873             fitsfilePtr::read_key_longstr = 2
7874             CODE:
7875 1 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7876 1           RETVAL=ffgkls(fptr,keyname,&longstr,comment,&status);
7877 1           sv_setpv(ST(2),longstr);
7878 1           fffree(longstr, &status);
7879             OUTPUT:
7880             comment
7881             status
7882             RETVAL
7883              
7884             int
7885             ffgskyc(fptr,keyname,firstchar,maxchar,maxcomchar,value,valuelen,comm,comlen,status)
7886             fitsfile *fptr
7887             const char *keyname
7888             int firstchar
7889             int maxchar
7890             int maxcomchar
7891             char * value = NO_INIT
7892             int valuelen = NO_INIT
7893             char * comm = NO_INIT
7894             int comlen = NO_INIT
7895             int status
7896             ALIAS:
7897             Astro::FITS::CFITSIO::fits_read_string_key_com = 1
7898             fitsfilePtr::read_string_key_com = 2
7899             CODE:
7900 0 0         value = (ST(5) != &PL_sv_undef) ? get_mortalspace(maxchar+1,TBYTE) : NULL;
7901 0 0         comm = (ST(7) != &PL_sv_undef) ? get_mortalspace(maxcomchar+1,TBYTE) : NULL;
7902 0           RETVAL=ffgskyc(fptr,keyname,firstchar,maxchar,maxcomchar,value,&valuelen,comm,&comlen,&status);
7903 0 0         if (ST(6) != &PL_sv_undef) sv_setiv(ST(6),valuelen);
7904 0 0         if (ST(8) != &PL_sv_undef) sv_setiv(ST(8),comlen);
7905             OUTPUT:
7906             value
7907             comm
7908             status
7909             RETVAL
7910              
7911             int
7912             fffree(value, status)
7913             void * value
7914             int &status
7915             ALIAS:
7916             Astro::FITS::CFITSIO::fits_free_memory = 1
7917             OUTPUT:
7918             status
7919              
7920             int
7921             ffgkys(fptr,keyname,value,comment,status)
7922             fitsfile * fptr
7923             char * keyname
7924             char * value = NO_INIT
7925             char * comment = NO_INIT
7926             int status
7927             ALIAS:
7928             Astro::FITS::CFITSIO::fits_read_key_str = 1
7929             fitsfilePtr::read_key_str = 2
7930             CODE:
7931 2           value = get_mortalspace(FLEN_VALUE,TBYTE);
7932 2 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7933 2           RETVAL=ffgkys(fptr,keyname,value,comment,&status);
7934             OUTPUT:
7935             value
7936             comment
7937             status
7938             RETVAL
7939              
7940             int
7941             ffgkyl(fptr,keyname,value,comment,status)
7942             fitsfile * fptr
7943             char * keyname
7944             int value = NO_INIT
7945             char * comment = NO_INIT
7946             int status
7947             ALIAS:
7948             Astro::FITS::CFITSIO::fits_read_key_log = 1
7949             fitsfilePtr::read_key_log = 2
7950             CODE:
7951 1 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7952 1           RETVAL=ffgkyl(fptr,keyname,&value,comment,&status);
7953             OUTPUT:
7954             value
7955             comment
7956             status
7957             RETVAL
7958              
7959             int
7960             ffgkyj(fptr,keyname,value,comment,status)
7961             fitsfile * fptr
7962             char * keyname
7963             long value = NO_INIT
7964             char * comment = NO_INIT
7965             int status
7966             ALIAS:
7967             Astro::FITS::CFITSIO::fits_read_key_lng = 1
7968             fitsfilePtr::read_key_lng = 2
7969             CODE:
7970 1 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7971 1           RETVAL=ffgkyj(fptr,keyname,&value,comment,&status);
7972             OUTPUT:
7973             value
7974             comment
7975             status
7976             RETVAL
7977              
7978             int
7979             ffgkyjj(fptr,keyname,value,comment,status)
7980             fitsfile * fptr
7981             char * keyname
7982             LONGLONG value = NO_INIT
7983             char * comment = NO_INIT
7984             int status
7985             ALIAS:
7986             Astro::FITS::CFITSIO::fits_read_key_lnglng = 1
7987             fitsfilePtr::read_key_lnglng = 2
7988             CODE:
7989 0 0         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7990 0           RETVAL=ffgkyjj(fptr,keyname,&value,comment,&status);
7991             OUTPUT:
7992             value
7993             comment
7994             status
7995             RETVAL
7996              
7997             int
7998             ffgkye(fptr,keyname,value,comment,status)
7999             fitsfile * fptr
8000             char * keyname
8001             float value = NO_INIT
8002             char * comment = NO_INIT
8003             int status
8004             ALIAS:
8005             Astro::FITS::CFITSIO::fits_read_key_flt = 1
8006             fitsfilePtr::read_key_flt = 2
8007             CODE:
8008 1 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8009 1           RETVAL=ffgkye(fptr,keyname,&value,comment,&status);
8010             OUTPUT:
8011             value
8012             comment
8013             status
8014             RETVAL
8015              
8016             int
8017             ffgkyd(fptr,keyname,value,comment,status)
8018             fitsfile * fptr
8019             char * keyname
8020             double value = NO_INIT
8021             char * comment = NO_INIT
8022             int status
8023             ALIAS:
8024             Astro::FITS::CFITSIO::fits_read_key_dbl = 1
8025             fitsfilePtr::read_key_dbl = 2
8026             CODE:
8027 4 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8028 4           RETVAL=ffgkyd(fptr,keyname,&value,comment,&status);
8029             OUTPUT:
8030             value
8031             comment
8032             status
8033             RETVAL
8034              
8035             int
8036             ffgkyc(fptr,keyname,value,comment,status)
8037             fitsfile * fptr
8038             char * keyname
8039             float * value = NO_INIT
8040             char * comment = NO_INIT
8041             int status
8042             ALIAS:
8043             Astro::FITS::CFITSIO::fits_read_key_cmp = 1
8044             fitsfilePtr::read_key_cmp = 2
8045             CODE:
8046 2           value = get_mortalspace(1,TCOMPLEX);
8047 2 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8048 2           RETVAL=ffgkyc(fptr,keyname,value,comment,&status);
8049 2           unpackScalar(ST(2),value,TCOMPLEX);
8050             OUTPUT:
8051             status
8052             comment
8053             RETVAL
8054              
8055             int
8056             ffgkym(fptr,keyname,value,comment,status)
8057             fitsfile * fptr
8058             char * keyname
8059             double * value = NO_INIT
8060             char * comment = NO_INIT
8061             int status
8062             ALIAS:
8063             Astro::FITS::CFITSIO::fits_read_key_dblcmp = 1
8064             fitsfilePtr::read_key_dblcmp = 2
8065             CODE:
8066 2           value = get_mortalspace(1,TDBLCOMPLEX);
8067 2 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8068 2           RETVAL=ffgkym(fptr,keyname,value,comment,&status);
8069 2           unpackScalar(ST(2),value,TDBLCOMPLEX);
8070             OUTPUT:
8071             comment
8072             status
8073             RETVAL
8074              
8075             int
8076             ffgkyn(fptr,keynum,keyname,value,comment,status)
8077             fitsfile * fptr
8078             int keynum
8079             char * keyname = NO_INIT
8080             char * value = NO_INIT
8081             char * comment = NO_INIT
8082             int status
8083             ALIAS:
8084             Astro::FITS::CFITSIO::fits_read_keyn = 1
8085             fitsfilePtr::read_keyn = 2
8086             CODE:
8087 1           keyname = get_mortalspace(FLEN_KEYWORD,TBYTE);
8088 1           value = get_mortalspace(FLEN_VALUE,TBYTE);
8089 1 50         comment=(ST(4)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8090 1           RETVAL=ffgkyn(fptr,keynum,keyname,value,comment,&status);
8091             OUTPUT:
8092             keyname
8093             value
8094             comment
8095             status
8096             RETVAL
8097              
8098             int
8099             ffgkns(fptr,keyname,nstart,nkeys,value,nfound,status)
8100             FitsFile * fptr
8101             char * keyname
8102             int nstart
8103             int nkeys
8104             char ** value = NO_INIT
8105             int nfound = NO_INIT
8106             int status
8107             ALIAS:
8108             Astro::FITS::CFITSIO::fits_read_keys_str = 1
8109             fitsfilePtr::read_keys_str = 2
8110             PREINIT:
8111             int i;
8112             CODE:
8113 2           value=get_mortalspace(nkeys,TSTRING);
8114 9 100         for (i=0; i
8115 7           value[i] = get_mortalspace(FLEN_VALUE,TBYTE);
8116 2           RETVAL=ffgkns(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8117 2           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TSTRING,fptr->perlyunpacking);
8118             OUTPUT:
8119             nfound
8120             status
8121             RETVAL
8122              
8123             int
8124             ffgknl(fptr,keyname,nstart,nkeys,value,nfound,status)
8125             FitsFile * fptr
8126             char * keyname
8127             int nstart
8128             int nkeys
8129             int * value = NO_INIT
8130             int nfound = NO_INIT
8131             int status
8132             ALIAS:
8133             Astro::FITS::CFITSIO::fits_read_keys_log = 1
8134             fitsfilePtr::read_keys_log = 2
8135             CODE:
8136 1           value=get_mortalspace(nkeys,TINT);
8137 1           RETVAL=ffgknl(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8138 1           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TINT,fptr->perlyunpacking);
8139             OUTPUT:
8140             nfound
8141             status
8142             RETVAL
8143              
8144             int
8145             ffgknj(fptr,keyname,nstart,nkeys,value,nfound,status)
8146             FitsFile * fptr
8147             char * keyname
8148             int nstart
8149             int nkeys
8150             long * value = NO_INIT
8151             int nfound = NO_INIT
8152             int status
8153             ALIAS:
8154             Astro::FITS::CFITSIO::fits_read_keys_lng = 1
8155             fitsfilePtr::read_keys_lng = 2
8156             CODE:
8157 1           value=get_mortalspace(nkeys,TLONG);
8158 1           RETVAL=ffgknj(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8159 1           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TLONG,fptr->perlyunpacking);
8160             OUTPUT:
8161             nfound
8162             status
8163             RETVAL
8164              
8165             int
8166             ffgknjj(fptr,keyname,nstart,nkeys,value,nfound,status)
8167             FitsFile * fptr
8168             char * keyname
8169             int nstart
8170             int nkeys
8171             LONGLONG * value = NO_INIT
8172             int nfound = NO_INIT
8173             int status
8174             ALIAS:
8175             Astro::FITS::CFITSIO::fits_read_keys_lnglng = 1
8176             fitsfilePtr::read_keys_lnglng = 2
8177             CODE:
8178 0           value=get_mortalspace(nkeys,TLONGLONG);
8179 0           RETVAL=ffgknjj(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8180 0           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TLONGLONG, fptr->perlyunpacking);
8181             OUTPUT:
8182             nfound
8183             status
8184             RETVAL
8185              
8186             int
8187             ffgkne(fptr,keyname,nstart,nkeys,value,nfound,status)
8188             FitsFile * fptr
8189             char * keyname
8190             int nstart
8191             int nkeys
8192             float * value = NO_INIT
8193             int nfound = NO_INIT
8194             int status
8195             ALIAS:
8196             Astro::FITS::CFITSIO::fits_read_keys_flt = 1
8197             fitsfilePtr::read_keys_flt = 2
8198             CODE:
8199 1           value=get_mortalspace(nkeys,TFLOAT);
8200 1           RETVAL=ffgkne(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8201 1           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TFLOAT,fptr->perlyunpacking);
8202             OUTPUT:
8203             nfound
8204             status
8205             RETVAL
8206              
8207             int
8208             ffgknd(fptr,keyname,nstart,nkeys,value,nfound,status)
8209             FitsFile * fptr
8210             char * keyname
8211             int nstart
8212             int nkeys
8213             double * value = NO_INIT
8214             int nfound = NO_INIT
8215             int status
8216             ALIAS:
8217             Astro::FITS::CFITSIO::fits_read_keys_dbl = 1
8218             fitsfilePtr::read_keys_dbl = 2
8219             CODE:
8220 1           value=get_mortalspace(nkeys,TDOUBLE);
8221 1           RETVAL=ffgknd(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8222 1           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TDOUBLE,fptr->perlyunpacking);
8223             OUTPUT:
8224             nfound
8225             status
8226             RETVAL
8227              
8228             int
8229             ffgkey(fptr,keyname,value,comment,status)
8230             fitsfile * fptr
8231             char * keyname
8232             char * value = NO_INIT
8233             char * comment = NO_INIT
8234             int status
8235             ALIAS:
8236             Astro::FITS::CFITSIO::fits_read_keyword = 1
8237             fitsfilePtr::read_keyword = 2
8238             CODE:
8239 9           value = get_mortalspace(FLEN_VALUE,TBYTE);
8240 9 100         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8241 9           RETVAL=ffgkey(fptr,keyname,value,comment,&status);
8242             OUTPUT:
8243             value
8244             comment
8245             status
8246             RETVAL
8247              
8248             int
8249             ffgrec(fptr,keynum,card,status)
8250             fitsfile * fptr
8251             int keynum
8252             char * card = NO_INIT
8253             int status
8254             ALIAS:
8255             Astro::FITS::CFITSIO::fits_read_record = 1
8256             fitsfilePtr::read_record = 2
8257             CODE:
8258 38           card = get_mortalspace(FLEN_CARD,TBYTE);
8259 38           RETVAL=ffgrec(fptr,keynum,card,&status);
8260             OUTPUT:
8261             card
8262             status
8263             RETVAL
8264              
8265             int
8266             ffgsv(fptr, dtype, blc, trc, inc, nulval, array, anynul, status)
8267             FitsFile * fptr
8268             int dtype
8269             long * blc
8270             long * trc
8271             long * inc
8272             SV * nulval
8273             void * array = NO_INIT
8274             int anynul = NO_INIT
8275             int status
8276             ALIAS:
8277             Astro::FITS::CFITSIO::fits_read_subset = 1
8278             fitsfilePtr::read_subset = 2
8279             PREINIT:
8280             long ndata, *naxes;
8281             int i, naxis, storage_dtype;
8282             CODE:
8283 0           storage_dtype = dtype;
8284 0 0         if (dtype == TBIT)
8285 0           storage_dtype = TLOGICAL;
8286              
8287             /* get the size of the image */
8288 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
8289 0           naxes = get_mortalspace(naxis, TLONG);
8290 0           RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
8291              
8292             /* determine the number of pixels to be read */
8293 0           ndata = 1;
8294 0 0         for (i=0; i
8295 0 0         ndata *= (trc[i]-blc[i]+1)/inc[i] +
8296 0           (((trc[i]-blc[i]+1) % inc[i]) ? 1 : 0);
8297              
8298 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8299 0 0         SvGROW(ST(6),ndata*sizeof_datatype(storage_dtype));
    0          
8300 0 0         RETVAL=ffgsv(fptr->fptr,dtype,blc,trc,inc,(nulval!=&PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL),(void*)SvPV(ST(6),PL_na),&anynul,&status);
    0          
8301             }
8302             else {
8303 0           array = get_mortalspace(ndata,storage_dtype);
8304 0 0         RETVAL=ffgsv(fptr->fptr,dtype,blc,trc,inc,(nulval != &PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL),array,&anynul,&status);
8305 0           unpack1D(ST(6),array,ndata,storage_dtype,fptr->perlyunpacking);
8306             }
8307 0 0         if (ST(7) != &PL_sv_undef)
8308 0           sv_setiv(ST(7),anynul);
8309             OUTPUT:
8310             RETVAL
8311             status
8312              
8313             int
8314             ffgsvb(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8315             FitsFile * fptr
8316             int group
8317             int naxis
8318             long * naxes
8319             long * fpixels
8320             long * lpixels
8321             long * inc
8322             byte nulval
8323             byte * array = NO_INIT
8324             int anynul = NO_INIT
8325             int status
8326             ALIAS:
8327             Astro::FITS::CFITSIO::fits_read_subset_byt = 1
8328             fitsfilePtr::read_subset_byt = 2
8329             PREINIT:
8330             long ndata;
8331             int i;
8332             CODE:
8333 0           ndata = 1;
8334 0 0         for (i=0; i
8335 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8336 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8337 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8338 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TBYTE));
    0          
8339 0 0         RETVAL=ffgsvb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(byte*)SvPV(ST(8),PL_na),&anynul,&status);
8340             }
8341             else {
8342 0           array = get_mortalspace(ndata,TBYTE);
8343 0           RETVAL=ffgsvb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8344 0           unpack1D(ST(8),array,ndata,TBYTE,fptr->perlyunpacking);
8345             }
8346 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8347             OUTPUT:
8348             status
8349             RETVAL
8350              
8351             int
8352             ffgsvsb(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8353             FitsFile * fptr
8354             int group
8355             int naxis
8356             long * naxes
8357             long * fpixels
8358             long * lpixels
8359             long * inc
8360             signed char nulval
8361             signed char* array = NO_INIT
8362             int anynul = NO_INIT
8363             int status
8364             ALIAS:
8365             Astro::FITS::CFITSIO::fits_read_subset_sbyt = 1
8366             fitsfilePtr::read_subset_sbyt = 2
8367             PREINIT:
8368             long ndata;
8369             int i;
8370             CODE:
8371 0           ndata = 1;
8372 0 0         for (i=0; i
8373 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8374 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8375 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8376 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TSBYTE));
    0          
8377 0 0         RETVAL=ffgsvsb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(signed char*)SvPV(ST(8),PL_na),&anynul,&status);
8378             }
8379             else {
8380 0           array = get_mortalspace(ndata,TSBYTE);
8381 0           RETVAL=ffgsvsb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8382 0           unpack1D(ST(8),array,ndata,TSBYTE,fptr->perlyunpacking);
8383             }
8384 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8385             OUTPUT:
8386             status
8387             RETVAL
8388              
8389             int
8390             ffgsvi(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8391             FitsFile * fptr
8392             int group
8393             int naxis
8394             long * naxes
8395             long * fpixels
8396             long * lpixels
8397             long * inc
8398             short nulval
8399             short * array = NO_INIT
8400             int anynul = NO_INIT
8401             int status
8402             ALIAS:
8403             Astro::FITS::CFITSIO::fits_read_subset_sht = 1
8404             fitsfilePtr::read_subset_sht = 2
8405             PREINIT:
8406             long ndata;
8407             int i;
8408             CODE:
8409 0           ndata = 1;
8410 0 0         for (i=0; i
8411 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8412 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8413 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8414 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TSHORT));
    0          
8415 0 0         RETVAL=ffgsvi(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(short*)SvPV(ST(8),PL_na),&anynul,&status);
8416             }
8417             else {
8418 0           array = get_mortalspace(ndata,TSHORT);
8419 0           RETVAL=ffgsvi(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8420 0           unpack1D(ST(8),array,ndata,TSHORT,fptr->perlyunpacking);
8421             }
8422 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8423             OUTPUT:
8424             status
8425             RETVAL
8426              
8427             int
8428             ffgsvui(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8429             FitsFile * fptr
8430             int group
8431             int naxis
8432             long * naxes
8433             long * fpixels
8434             long * lpixels
8435             long * inc
8436             unsigned short nulval
8437             unsigned short * array = NO_INIT
8438             int anynul = NO_INIT
8439             int status
8440             ALIAS:
8441             Astro::FITS::CFITSIO::fits_read_subset_usht = 1
8442             fitsfilePtr::read_subset_usht = 2
8443             PREINIT:
8444             long ndata;
8445             int i;
8446             CODE:
8447 0           ndata = 1;
8448 0 0         for (i=0; i
8449 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8450 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8451 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8452 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TUSHORT));
    0          
8453 0 0         RETVAL=ffgsvui(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(unsigned short*)SvPV(ST(8),PL_na),&anynul,&status);
8454             }
8455             else {
8456 0           array = get_mortalspace(ndata,TUSHORT);
8457 0           RETVAL=ffgsvui(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8458 0           unpack1D(ST(8),array,ndata,TUSHORT,fptr->perlyunpacking);
8459             }
8460 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8461             OUTPUT:
8462             status
8463             RETVAL
8464              
8465             int
8466             ffgsvk(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8467             FitsFile * fptr
8468             int group
8469             int naxis
8470             long * naxes
8471             long * fpixels
8472             long * lpixels
8473             long * inc
8474             int nulval
8475             int * array = NO_INIT
8476             int anynul = NO_INIT
8477             int status
8478             ALIAS:
8479             Astro::FITS::CFITSIO::fits_read_subset_int = 1
8480             fitsfilePtr::read_subset_int = 2
8481             PREINIT:
8482             long ndata;
8483             int i;
8484             CODE:
8485 0           ndata = 1;
8486 0 0         for (i=0; i
8487 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8488 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8489 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8490 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TINT));
    0          
8491 0 0         RETVAL=ffgsvk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(int*)SvPV(ST(8),PL_na),&anynul,&status);
8492             }
8493             else {
8494 0           array = get_mortalspace(ndata,TINT);
8495 0           RETVAL=ffgsvk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8496 0           unpack1D(ST(8),array,ndata,TINT,fptr->perlyunpacking);
8497             }
8498 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8499             OUTPUT:
8500             status
8501             RETVAL
8502              
8503             int
8504             ffgsvuk(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8505             FitsFile * fptr
8506             int group
8507             int naxis
8508             long * naxes
8509             long * fpixels
8510             long * lpixels
8511             long * inc
8512             unsigned int nulval
8513             unsigned int * array = NO_INIT
8514             int anynul = NO_INIT
8515             int status
8516             ALIAS:
8517             Astro::FITS::CFITSIO::fits_read_subset_uint = 1
8518             fitsfilePtr::read_subset_uint = 2
8519             PREINIT:
8520             long ndata;
8521             int i;
8522             CODE:
8523 0           ndata = 1;
8524 0 0         for (i=0; i
8525 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8526 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8527 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8528 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TUINT));
    0          
8529 0 0         RETVAL=ffgsvuk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(unsigned int*)SvPV(ST(8),PL_na),&anynul,&status);
8530             }
8531             else {
8532 0           array = get_mortalspace(ndata,TUINT);
8533 0           RETVAL=ffgsvuk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8534 0           unpack1D(ST(8),array,ndata,TUINT,fptr->perlyunpacking);
8535             }
8536 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8537             OUTPUT:
8538             status
8539             RETVAL
8540              
8541             int
8542             ffgsvj(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8543             FitsFile * fptr
8544             int group
8545             int naxis
8546             long * naxes
8547             long * fpixels
8548             long * lpixels
8549             long * inc
8550             long nulval
8551             long * array = NO_INIT
8552             int anynul = NO_INIT
8553             int status
8554             ALIAS:
8555             Astro::FITS::CFITSIO::fits_read_subset_lng = 1
8556             fitsfilePtr::read_subset_lng = 2
8557             PREINIT:
8558             long ndata;
8559             int i;
8560             CODE:
8561 0           ndata = 1;
8562 0 0         for (i=0; i
8563 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8564 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8565 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8566 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLONG));
    0          
8567 0 0         RETVAL=ffgsvj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(long*)SvPV(ST(8),PL_na),&anynul,&status);
8568             }
8569             else {
8570 0           array = get_mortalspace(ndata,TLONG);
8571 0           RETVAL=ffgsvj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8572 0           unpack1D(ST(8),array,ndata,TLONG,fptr->perlyunpacking);
8573             }
8574 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8575             OUTPUT:
8576             status
8577             RETVAL
8578              
8579             int
8580             ffgsvjj(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8581             FitsFile * fptr
8582             int group
8583             int naxis
8584             long * naxes
8585             long * fpixels
8586             long * lpixels
8587             long * inc
8588             LONGLONG nulval
8589             LONGLONG* array = NO_INIT
8590             int anynul = NO_INIT
8591             int status
8592             ALIAS:
8593             Astro::FITS::CFITSIO::fits_read_subset_lnglng = 1
8594             fitsfilePtr::read_subset_lnglng = 2
8595             PREINIT:
8596             long ndata;
8597             int i;
8598             CODE:
8599 0           ndata = 1;
8600 0 0         for (i=0; i
8601 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8602 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8603 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8604 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLONGLONG));
    0          
8605 0 0         RETVAL=ffgsvjj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(LONGLONG*)SvPV(ST(8),PL_na),&anynul,&status);
8606             }
8607             else {
8608 0           array = get_mortalspace(ndata,TLONGLONG);
8609 0           RETVAL=ffgsvjj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8610 0           unpack1D(ST(8),array,ndata,TLONGLONG,fptr->perlyunpacking);
8611             }
8612 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8613             OUTPUT:
8614             status
8615             RETVAL
8616              
8617             int
8618             ffgsvuj(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8619             FitsFile * fptr
8620             int group
8621             int naxis
8622             long * naxes
8623             long * fpixels
8624             long * lpixels
8625             long * inc
8626             unsigned long nulval
8627             unsigned long * array = NO_INIT
8628             int anynul = NO_INIT
8629             int status
8630             ALIAS:
8631             Astro::FITS::CFITSIO::fits_read_subset_ulng = 1
8632             fitsfilePtr::read_subset_ulng = 2
8633             PREINIT:
8634             long ndata;
8635             int i;
8636             CODE:
8637 0           ndata = 1;
8638 0 0         for (i=0; i
8639 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8640 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8641 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8642 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TULONG));
    0          
8643 0 0         RETVAL=ffgsvuj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(unsigned long*)SvPV(ST(8),PL_na),&anynul,&status);
8644             }
8645             else {
8646 0           array = get_mortalspace(ndata,TULONG);
8647 0           RETVAL=ffgsvuj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8648 0           unpack1D(ST(8),array,ndata,TULONG,fptr->perlyunpacking);
8649             }
8650 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8651             OUTPUT:
8652             status
8653             RETVAL
8654              
8655             int
8656             ffgsve(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8657             FitsFile * fptr
8658             int group
8659             int naxis
8660             long * naxes
8661             long * fpixels
8662             long * lpixels
8663             long * inc
8664             float nulval
8665             float * array = NO_INIT
8666             int anynul = NO_INIT
8667             int status
8668             ALIAS:
8669             Astro::FITS::CFITSIO::fits_read_subset_flt = 1
8670             fitsfilePtr::read_subset_flt = 2
8671             PREINIT:
8672             long ndata;
8673             int i;
8674             CODE:
8675 0           ndata = 1;
8676 0 0         for (i=0; i
8677 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8678 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8679 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8680 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TFLOAT));
    0          
8681 0 0         RETVAL=ffgsve(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(float*)SvPV(ST(8),PL_na),&anynul,&status);
8682             }
8683             else {
8684 0           array = get_mortalspace(ndata,TFLOAT);
8685 0           RETVAL=ffgsve(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8686 0           unpack1D(ST(8),array,ndata,TFLOAT,fptr->perlyunpacking);
8687             }
8688 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8689             OUTPUT:
8690             status
8691             RETVAL
8692              
8693             int
8694             ffgsvd(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8695             FitsFile * fptr
8696             int group
8697             int naxis
8698             long * naxes
8699             long * fpixels
8700             long * lpixels
8701             long * inc
8702             double nulval
8703             double * array = NO_INIT
8704             int anynul = NO_INIT
8705             int status
8706             ALIAS:
8707             Astro::FITS::CFITSIO::fits_read_subset_dbl = 1
8708             fitsfilePtr::read_subset_dbl = 2
8709             PREINIT:
8710             long ndata;
8711             int i;
8712             CODE:
8713 0           ndata = 1;
8714 0 0         for (i=0; i
8715 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8716 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8717 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8718 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TDOUBLE));
    0          
8719 0 0         RETVAL=ffgsvd(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(double*)SvPV(ST(8),PL_na),&anynul,&status);
8720             }
8721             else {
8722 0           array = get_mortalspace(ndata,TDOUBLE);
8723 0           RETVAL=ffgsvd(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8724 0           unpack1D(ST(8),array,ndata,TDOUBLE,fptr->perlyunpacking);
8725             }
8726 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8727             OUTPUT:
8728             status
8729             RETVAL
8730              
8731             int
8732             ffgsfb(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8733             FitsFile * fptr
8734             int group
8735             int naxis
8736             long * naxes
8737             long * fpixels
8738             long * lpixels
8739             long * inc
8740             byte * array = NO_INIT
8741             logical * nularr = NO_INIT
8742             int anynul = NO_INIT
8743             int status
8744             ALIAS:
8745             Astro::FITS::CFITSIO::fits_read_subsetnull_byt = 1
8746             fitsfilePtr::read_subsetnull_byt = 2
8747             PREINIT:
8748             long ndata;
8749             int i;
8750             CODE:
8751 0           ndata = 1;
8752 0 0         for (i=0; i
8753 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8754 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8755 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8756 0 0         if (ST(7) != &PL_sv_undef) {
8757 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TBYTE));
    0          
8758 0 0         array = (byte*)SvPV(ST(7),PL_na);
8759             }
8760             else
8761 0           array = get_mortalspace(ndata,TBYTE);
8762 0 0         if (ST(8) != &PL_sv_undef) {
8763 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8764 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8765             }
8766             else
8767 0           nularr = get_mortalspace(ndata,TLOGICAL);
8768 0           RETVAL=ffgsfb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8769             }
8770             else {
8771 0           array = get_mortalspace(ndata,TBYTE);
8772 0           nularr = get_mortalspace(ndata,TLOGICAL);
8773 0           RETVAL=ffgsfb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8774 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TBYTE,fptr->perlyunpacking);
8775 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8776             }
8777 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8778             OUTPUT:
8779             status
8780             RETVAL
8781              
8782             int
8783             ffgsfsb(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8784             FitsFile * fptr
8785             int group
8786             int naxis
8787             long * naxes
8788             long * fpixels
8789             long * lpixels
8790             long * inc
8791             signed char* array = NO_INIT
8792             logical * nularr = NO_INIT
8793             int anynul = NO_INIT
8794             int status
8795             ALIAS:
8796             Astro::FITS::CFITSIO::fits_read_subsetnull_sbyt = 1
8797             fitsfilePtr::read_subsetnull_sbyt = 2
8798             PREINIT:
8799             long ndata;
8800             int i;
8801             CODE:
8802 0           ndata = 1;
8803 0 0         for (i=0; i
8804 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8805 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8806 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8807 0 0         if (ST(7) != &PL_sv_undef) {
8808 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TSBYTE));
    0          
8809 0 0         array = (signed char*)SvPV(ST(7),PL_na);
8810             }
8811             else
8812 0           array = get_mortalspace(ndata,TSBYTE);
8813 0 0         if (ST(8) != &PL_sv_undef) {
8814 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8815 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8816             }
8817             else
8818 0           nularr = get_mortalspace(ndata,TLOGICAL);
8819 0           RETVAL=ffgsfsb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8820             }
8821             else {
8822 0           array = get_mortalspace(ndata,TSBYTE);
8823 0           nularr = get_mortalspace(ndata,TLOGICAL);
8824 0           RETVAL=ffgsfsb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8825 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TSBYTE,fptr->perlyunpacking);
8826 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8827             }
8828 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8829             OUTPUT:
8830             status
8831             RETVAL
8832              
8833             int
8834             ffgsfi(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8835             FitsFile * fptr
8836             int group
8837             int naxis
8838             long * naxes
8839             long * fpixels
8840             long * lpixels
8841             long * inc
8842             short * array = NO_INIT
8843             logical * nularr = NO_INIT
8844             int anynul = NO_INIT
8845             int status
8846             ALIAS:
8847             Astro::FITS::CFITSIO::fits_read_subsetnull_sht = 1
8848             fitsfilePtr::read_subsetnull_sht = 2
8849             PREINIT:
8850             long ndata;
8851             int i;
8852             CODE:
8853 0           ndata = 1;
8854 0 0         for (i=0; i
8855 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8856 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8857 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8858 0 0         if (ST(7) != &PL_sv_undef) {
8859 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TSHORT));
    0          
8860 0 0         array = (short*)SvPV(ST(7),PL_na);
8861             }
8862             else
8863 0           array = get_mortalspace(ndata,TSHORT);
8864 0 0         if (ST(8) != &PL_sv_undef) {
8865 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8866 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8867             }
8868             else
8869 0           nularr = get_mortalspace(ndata,TLOGICAL);
8870 0           RETVAL=ffgsfi(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8871             }
8872             else {
8873 0           array = get_mortalspace(ndata,TSHORT);
8874 0           nularr = get_mortalspace(ndata,TLOGICAL);
8875 0           RETVAL=ffgsfi(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8876 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TSHORT,fptr->perlyunpacking);
8877 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8878             }
8879 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8880             OUTPUT:
8881             status
8882             RETVAL
8883              
8884             int
8885             ffgsfui(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8886             FitsFile * fptr
8887             int group
8888             int naxis
8889             long * naxes
8890             long * fpixels
8891             long * lpixels
8892             long * inc
8893             unsigned short * array = NO_INIT
8894             logical * nularr = NO_INIT
8895             int anynul = NO_INIT
8896             int status
8897             ALIAS:
8898             Astro::FITS::CFITSIO::fits_read_subsetnull_usht = 1
8899             fitsfilePtr::read_subsetnull_usht = 2
8900             PREINIT:
8901             long ndata;
8902             int i;
8903             CODE:
8904 0           ndata = 1;
8905 0 0         for (i=0; i
8906 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8907 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8908 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8909 0 0         if (ST(7) != &PL_sv_undef) {
8910 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TUSHORT));
    0          
8911 0 0         array = (unsigned short*)SvPV(ST(7),PL_na);
8912             }
8913             else
8914 0           array = get_mortalspace(ndata,TUSHORT);
8915 0 0         if (ST(8) != &PL_sv_undef) {
8916 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8917 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8918             }
8919             else
8920 0           nularr = get_mortalspace(ndata,TLOGICAL);
8921 0           RETVAL=ffgsfui(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8922             }
8923             else {
8924 0           array = get_mortalspace(ndata,TUSHORT);
8925 0           nularr = get_mortalspace(ndata,TLOGICAL);
8926 0           RETVAL=ffgsfui(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8927 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TUSHORT,fptr->perlyunpacking);
8928 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8929             }
8930 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8931             OUTPUT:
8932             status
8933             RETVAL
8934              
8935             int
8936             ffgsfk(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8937             FitsFile * fptr
8938             int group
8939             int naxis
8940             long * naxes
8941             long * fpixels
8942             long * lpixels
8943             long * inc
8944             int * array = NO_INIT
8945             logical * nularr = NO_INIT
8946             int anynul = NO_INIT
8947             int status
8948             ALIAS:
8949             Astro::FITS::CFITSIO::fits_read_subsetnull_int = 1
8950             fitsfilePtr::read_subsetnull_int = 2
8951             PREINIT:
8952             long ndata;
8953             int i;
8954             CODE:
8955 0           ndata = 1;
8956 0 0         for (i=0; i
8957 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8958 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8959 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8960 0 0         if (ST(7) != &PL_sv_undef) {
8961 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TINT));
    0          
8962 0 0         array = (int*)SvPV(ST(7),PL_na);
8963             }
8964             else
8965 0           array = get_mortalspace(ndata,TINT);
8966 0 0         if (ST(8) != &PL_sv_undef) {
8967 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8968 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8969             }
8970             else
8971 0           nularr = get_mortalspace(ndata,TLOGICAL);
8972 0           RETVAL=ffgsfk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8973             }
8974             else {
8975 0           array = get_mortalspace(ndata,TINT);
8976 0           nularr = get_mortalspace(ndata,TLOGICAL);
8977 0           RETVAL=ffgsfk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8978 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TINT,fptr->perlyunpacking);
8979 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8980             }
8981 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8982             OUTPUT:
8983             status
8984             RETVAL
8985              
8986             int
8987             ffgsfuk(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8988             FitsFile * fptr
8989             int group
8990             int naxis
8991             long * naxes
8992             long * fpixels
8993             long * lpixels
8994             long * inc
8995             unsigned int * array = NO_INIT
8996             logical * nularr = NO_INIT
8997             int anynul = NO_INIT
8998             int status
8999             ALIAS:
9000             Astro::FITS::CFITSIO::fits_read_subsetnull_uint = 1
9001             fitsfilePtr::read_subsetnull_uint = 2
9002             PREINIT:
9003             long ndata;
9004             int i;
9005             CODE:
9006 0           ndata = 1;
9007 0 0         for (i=0; i
9008 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9009 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9010 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9011 0 0         if (ST(7) != &PL_sv_undef) {
9012 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TUINT));
    0          
9013 0 0         array = (unsigned int*)SvPV(ST(7),PL_na);
9014             }
9015             else
9016 0           array = get_mortalspace(ndata,TUINT);
9017 0 0         if (ST(8) != &PL_sv_undef) {
9018 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9019 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9020             }
9021             else
9022 0           nularr = get_mortalspace(ndata,TLOGICAL);
9023 0           RETVAL=ffgsfuk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9024             }
9025             else {
9026 0           array = get_mortalspace(ndata,TUINT);
9027 0           nularr = get_mortalspace(ndata,TLOGICAL);
9028 0           RETVAL=ffgsfuk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9029 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TUINT,fptr->perlyunpacking);
9030 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9031             }
9032 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9033             OUTPUT:
9034             status
9035             RETVAL
9036              
9037             int
9038             ffgsfj(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9039             FitsFile * fptr
9040             int group
9041             int naxis
9042             long * naxes
9043             long * fpixels
9044             long * lpixels
9045             long * inc
9046             long * array = NO_INIT
9047             logical * nularr = NO_INIT
9048             int anynul = NO_INIT
9049             int status
9050             ALIAS:
9051             Astro::FITS::CFITSIO::fits_read_subsetnull_lng = 1
9052             fitsfilePtr::read_subsetnull_lng = 2
9053             PREINIT:
9054             long ndata;
9055             int i;
9056             CODE:
9057 0           ndata = 1;
9058 0 0         for (i=0; i
9059 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9060 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9061 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9062 0 0         if (ST(7) != &PL_sv_undef) {
9063 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TLONG));
    0          
9064 0 0         array = (long*)SvPV(ST(7),PL_na);
9065             }
9066             else
9067 0           array = get_mortalspace(ndata,TLONG);
9068 0 0         if (ST(8) != &PL_sv_undef) {
9069 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9070 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9071             }
9072             else
9073 0           nularr = get_mortalspace(ndata,TLOGICAL);
9074 0           RETVAL=ffgsfj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9075             }
9076             else {
9077 0           array = get_mortalspace(ndata,TLONG);
9078 0           nularr = get_mortalspace(ndata,TLOGICAL);
9079 0           RETVAL=ffgsfj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9080 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TLONG,fptr->perlyunpacking);
9081 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9082             }
9083 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9084             OUTPUT:
9085             status
9086             RETVAL
9087              
9088             int
9089             ffgsfjj(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9090             FitsFile * fptr
9091             int group
9092             int naxis
9093             long * naxes
9094             long * fpixels
9095             long * lpixels
9096             long * inc
9097             LONGLONG* array = NO_INIT
9098             logical * nularr = NO_INIT
9099             int anynul = NO_INIT
9100             int status
9101             ALIAS:
9102             Astro::FITS::CFITSIO::fits_read_subsetnull_lnglng = 1
9103             fitsfilePtr::read_subsetnull_lnglng = 2
9104             PREINIT:
9105             long ndata;
9106             int i;
9107             CODE:
9108 0           ndata = 1;
9109 0 0         for (i=0; i
9110 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9111 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9112 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9113 0 0         if (ST(7) != &PL_sv_undef) {
9114 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TLONGLONG));
    0          
9115 0 0         array = (LONGLONG*)SvPV(ST(7),PL_na);
9116             }
9117             else
9118 0           array = get_mortalspace(ndata,TLONGLONG);
9119 0 0         if (ST(8) != &PL_sv_undef) {
9120 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9121 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9122             }
9123             else
9124 0           nularr = get_mortalspace(ndata,TLOGICAL);
9125 0           RETVAL=ffgsfjj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9126             }
9127             else {
9128 0           array = get_mortalspace(ndata,TLONGLONG);
9129 0           nularr = get_mortalspace(ndata,TLOGICAL);
9130 0           RETVAL=ffgsfjj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9131 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TLONGLONG,fptr->perlyunpacking);
9132 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9133             }
9134 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9135             OUTPUT:
9136             status
9137             RETVAL
9138              
9139             int
9140             ffgsfuj(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9141             FitsFile * fptr
9142             int group
9143             int naxis
9144             long * naxes
9145             long * fpixels
9146             long * lpixels
9147             long * inc
9148             unsigned long * array = NO_INIT
9149             logical * nularr = NO_INIT
9150             int anynul = NO_INIT
9151             int status
9152             ALIAS:
9153             Astro::FITS::CFITSIO::fits_read_subsetnull_ulng = 1
9154             fitsfilePtr::read_subsetnull_ulng = 2
9155             PREINIT:
9156             long ndata;
9157             int i;
9158             CODE:
9159 0           ndata = 1;
9160 0 0         for (i=0; i
9161 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9162 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9163 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9164 0 0         if (ST(7) != &PL_sv_undef) {
9165 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TULONG));
    0          
9166 0 0         array = (unsigned long*)SvPV(ST(7),PL_na);
9167             }
9168             else
9169 0           array = get_mortalspace(ndata,TULONG);
9170 0 0         if (ST(8) != &PL_sv_undef) {
9171 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9172 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9173             }
9174             else
9175 0           nularr = get_mortalspace(ndata,TLOGICAL);
9176 0           RETVAL=ffgsfuj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9177             }
9178             else {
9179 0           array = get_mortalspace(ndata,TULONG);
9180 0           nularr = get_mortalspace(ndata,TLOGICAL);
9181 0           RETVAL=ffgsfuj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9182 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TULONG,fptr->perlyunpacking);
9183 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9184             }
9185 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9186             OUTPUT:
9187             status
9188             RETVAL
9189              
9190             int
9191             ffgsfe(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9192             FitsFile * fptr
9193             int group
9194             int naxis
9195             long * naxes
9196             long * fpixels
9197             long * lpixels
9198             long * inc
9199             float * array = NO_INIT
9200             logical * nularr = NO_INIT
9201             int anynul = NO_INIT
9202             int status
9203             ALIAS:
9204             Astro::FITS::CFITSIO::fits_read_subsetnull_flt = 1
9205             fitsfilePtr::read_subsetnull_flt = 2
9206             PREINIT:
9207             long ndata;
9208             int i;
9209             CODE:
9210 0           ndata = 1;
9211 0 0         for (i=0; i
9212 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9213 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9214 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9215 0 0         if (ST(7) != &PL_sv_undef) {
9216 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TFLOAT));
    0          
9217 0 0         array = (float*)SvPV(ST(7),PL_na);
9218             }
9219             else
9220 0           array = get_mortalspace(ndata,TFLOAT);
9221 0 0         if (ST(8) != &PL_sv_undef) {
9222 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9223 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9224             }
9225             else
9226 0           nularr = get_mortalspace(ndata,TLOGICAL);
9227 0           RETVAL=ffgsfe(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9228             }
9229             else {
9230 0           array = get_mortalspace(ndata,TFLOAT);
9231 0           nularr = get_mortalspace(ndata,TLOGICAL);
9232 0           RETVAL=ffgsfe(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9233 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TFLOAT,fptr->perlyunpacking);
9234 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9235             }
9236 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9237             OUTPUT:
9238             status
9239             RETVAL
9240              
9241             int
9242             ffgsfd(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9243             FitsFile * fptr
9244             int group
9245             int naxis
9246             long * naxes
9247             long * fpixels
9248             long * lpixels
9249             long * inc
9250             double * array = NO_INIT
9251             logical * nularr = NO_INIT
9252             int anynul = NO_INIT
9253             int status
9254             ALIAS:
9255             Astro::FITS::CFITSIO::fits_read_subsetnull_dbl = 1
9256             fitsfilePtr::read_subsetnull_dbl = 2
9257             PREINIT:
9258             long ndata;
9259             int i;
9260             CODE:
9261 0           ndata = 1;
9262 0 0         for (i=0; i
9263 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9264 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9265 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9266 0 0         if (ST(7) != &PL_sv_undef) {
9267 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TDOUBLE));
    0          
9268 0 0         array = (double*)SvPV(ST(7),PL_na);
9269             }
9270             else
9271 0           array = get_mortalspace(ndata,TDOUBLE);
9272 0 0         if (ST(8) != &PL_sv_undef) {
9273 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9274 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9275             }
9276             else
9277 0           nularr = get_mortalspace(ndata,TLOGICAL);
9278 0           RETVAL=ffgsfd(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9279             }
9280             else {
9281 0           array = get_mortalspace(ndata,TDOUBLE);
9282 0           nularr = get_mortalspace(ndata,TLOGICAL);
9283 0           RETVAL=ffgsfd(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9284 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TDOUBLE,fptr->perlyunpacking);
9285 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9286             }
9287 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9288             OUTPUT:
9289             status
9290             RETVAL
9291              
9292             int
9293             ffgtcs(fptr,xcol,ycol,xrefval,yrefval,xrefpix,yrefpix,xinc,yinc,rot,coordtype,status)
9294             fitsfile * fptr
9295             int xcol
9296             int ycol
9297             double xrefval = NO_INIT
9298             double yrefval = NO_INIT
9299             double xrefpix = NO_INIT
9300             double yrefpix = NO_INIT
9301             double xinc = NO_INIT
9302             double yinc = NO_INIT
9303             double rot = NO_INIT
9304             char * coordtype = NO_INIT
9305             int status
9306             ALIAS:
9307             Astro::FITS::CFITSIO::fits_read_tbl_coord = 1
9308             fitsfilePtr::read_tbl_coord = 2
9309             CODE:
9310 0           coordtype = get_mortalspace(FLEN_VALUE,TBYTE);
9311 0           RETVAL=ffgtcs(fptr,xcol,ycol,&xrefval,&yrefval,&xrefpix,&yrefpix,&xinc,&yinc,&rot,coordtype,&status);
9312 0 0         if (ST(3) != &PL_sv_undef) sv_setnv(ST(3),xrefval); /* value-added, all around */
9313 0 0         if (ST(4) != &PL_sv_undef) sv_setnv(ST(4),yrefval);
9314 0 0         if (ST(5) != &PL_sv_undef) sv_setnv(ST(5),xrefpix);
9315 0 0         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),yrefpix);
9316 0 0         if (ST(7) != &PL_sv_undef) sv_setnv(ST(7),xinc);
9317 0 0         if (ST(8) != &PL_sv_undef) sv_setnv(ST(8),yinc);
9318 0 0         if (ST(9) != &PL_sv_undef) sv_setnv(ST(9),rot);
9319             OUTPUT:
9320             coordtype
9321             status
9322             RETVAL
9323              
9324             int
9325             ffgtbb(fptr,frow,fchar,nchars,values,status)
9326             FitsFile * fptr
9327             LONGLONG frow
9328             LONGLONG fchar
9329             LONGLONG nchars
9330             byte * values = NO_INIT
9331             int status
9332             ALIAS:
9333             Astro::FITS::CFITSIO::fits_read_tblbytes = 1
9334             fitsfilePtr::read_tblbytes = 2
9335             CODE:
9336 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
9337 0 0         SvGROW(ST(4),nchars*sizeof_datatype(TBYTE));
    0          
9338 0 0         RETVAL=ffgtbb(fptr->fptr,frow,fchar,nchars,(byte*)SvPV(ST(4),PL_na),&status);
9339             }
9340             else {
9341 1           values = get_mortalspace(nchars,TBYTE);
9342 1           RETVAL=ffgtbb(fptr->fptr,frow,fchar,nchars,values,&status);
9343 1           unpack1D(ST(4),values,nchars,TBYTE,fptr->perlyunpacking);
9344             }
9345             OUTPUT:
9346             status
9347             RETVAL
9348              
9349             int
9350             ffgtdm(fptr,colnum,naxis,naxes,status)
9351             FitsFile * fptr
9352             int colnum
9353             int naxis = NO_INIT
9354             long * naxes = NO_INIT
9355             int status
9356             ALIAS:
9357             Astro::FITS::CFITSIO::fits_read_tdim = 1
9358             fitsfilePtr::read_tdim = 2
9359             CODE:
9360 1 50         if (ST(3)!=&PL_sv_undef) {
9361 1           ffgtdm(fptr->fptr,colnum,0,&naxis,NULL,&status);
9362 1           naxes = get_mortalspace(naxis,TLONG);
9363             }
9364             else {
9365 0           naxes = NULL;
9366 0           naxis = 0;
9367             }
9368 1           RETVAL=ffgtdm(fptr->fptr,colnum,naxis,&naxis,naxes,&status);
9369 1 50         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
9370 1 50         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONG,fptr->perlyunpacking);
9371             OUTPUT:
9372             status
9373             RETVAL
9374              
9375             int
9376             ffgtdmll(fptr,colnum,naxis,naxes,status)
9377             FitsFile * fptr
9378             int colnum
9379             int naxis = NO_INIT
9380             LONGLONG * naxes = NO_INIT
9381             int status
9382             ALIAS:
9383             Astro::FITS::CFITSIO::fits_read_tdimll = 1
9384             fitsfilePtr::read_tdimll = 2
9385             CODE:
9386 0 0         if (ST(3)!=&PL_sv_undef) {
9387 0           ffgtdmll(fptr->fptr,colnum,0,&naxis,NULL,&status);
9388 0           naxes = get_mortalspace(naxis,TLONGLONG);
9389             }
9390             else {
9391 0           naxes = NULL;
9392 0           naxis = 0;
9393             }
9394 0           RETVAL=ffgtdmll(fptr->fptr,colnum,naxis,&naxis,naxes,&status);
9395 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
9396 0 0         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONGLONG,fptr->perlyunpacking);
9397             OUTPUT:
9398             status
9399             RETVAL
9400              
9401             int
9402             ffgtrm(gfptr,rmopt,status)
9403             fitsfile * gfptr
9404             int rmopt
9405             int &status
9406             ALIAS:
9407             Astro::FITS::CFITSIO::fits_remove_group = 1
9408             fitsfilePtr::remove_group = 2
9409             OUTPUT:
9410             status
9411              
9412             int
9413             ffgmrm(fptr,member,rmopt,status)
9414             fitsfile * fptr
9415             long member
9416             int rmopt
9417             int &status
9418             ALIAS:
9419             Astro::FITS::CFITSIO::fits_remove_member = 1
9420             fitsfilePtr::remove_member = 2
9421             OUTPUT:
9422             status
9423              
9424             int
9425             ffreopen(openfptr,newfptr,status)
9426             fitsfile * openfptr
9427             FitsFile * newfptr = NO_INIT
9428             int status
9429             ALIAS:
9430             Astro::FITS::CFITSIO::fits_reopen_file = 1
9431             fitsfilePtr::reopen_file = 2
9432             CODE:
9433 0           NewFitsFile(newfptr);
9434 0           RETVAL = ffreopen(openfptr,&(newfptr->fptr),&status);
9435 0 0         if (RETVAL)
9436 0           AbortFitsFile(newfptr);
9437             OUTPUT:
9438             status
9439             newfptr
9440             RETVAL
9441              
9442             void
9443             ffrprt(stream, status)
9444             FILE * stream
9445             int status
9446             ALIAS:
9447             Astro::FITS::CFITSIO::fits_report_error = 1
9448              
9449             int
9450             ffrsim(fptr,bitpix,naxis,naxes,status)
9451             fitsfile * fptr
9452             int bitpix
9453             int naxis
9454             long * naxes
9455             int &status
9456             ALIAS:
9457             Astro::FITS::CFITSIO::fits_resize_img = 1
9458             fitsfilePtr::resize_img = 2
9459             OUTPUT:
9460             status
9461              
9462             int
9463             ffrsimll(fptr,bitpix,naxis,naxes,status)
9464             fitsfile * fptr
9465             int bitpix
9466             int naxis
9467             LONGLONG * naxes
9468             int &status
9469             ALIAS:
9470             Astro::FITS::CFITSIO::fits_resize_imgll = 1
9471             fitsfilePtr::resize_imgll = 2
9472             OUTPUT:
9473             status
9474              
9475             int
9476             ffsrow(infptr,outfptr,expr,status)
9477             fitsfile * infptr
9478             fitsfile * outfptr
9479             char * expr
9480             int &status
9481             ALIAS:
9482             Astro::FITS::CFITSIO::fits_select_rows = 1
9483             fitsfilePtr::select_rows = 2
9484             OUTPUT:
9485             status
9486              
9487             int
9488             ffpscl(fptr,scale,zero,status)
9489             fitsfile * fptr
9490             double scale
9491             double zero
9492             int &status
9493             ALIAS:
9494             Astro::FITS::CFITSIO::fits_set_bscale = 1
9495             fitsfilePtr::set_bscale = 2
9496             OUTPUT:
9497             status
9498              
9499             int
9500             ffsnul(fptr,colnum,nulstr,status)
9501             fitsfile * fptr
9502             int colnum
9503             char * nulstr
9504             int &status
9505             ALIAS:
9506             Astro::FITS::CFITSIO::fits_set_atblnull = 1
9507             fitsfilePtr::set_atblnull = 2
9508             OUTPUT:
9509             status
9510              
9511             int
9512             fftnul(fptr,colnum,nulval,status)
9513             fitsfile * fptr
9514             int colnum
9515             LONGLONG nulval
9516             int &status
9517             ALIAS:
9518             Astro::FITS::CFITSIO::fits_set_btblnull = 1
9519             fitsfilePtr::set_btblnull = 2
9520             OUTPUT:
9521             status
9522              
9523             int
9524             fits_set_compression_type(fptr, comptype, status)
9525             fitsfile *fptr
9526             int comptype
9527             int &status
9528             ALIAS:
9529             fitsfilePtr::set_compression_type = 1
9530             OUTPUT:
9531             status
9532              
9533             int
9534             ffhdef(fptr,morekeys,status)
9535             fitsfile * fptr
9536             int morekeys
9537             int &status
9538             ALIAS:
9539             Astro::FITS::CFITSIO::fits_set_hdrsize = 1
9540             fitsfilePtr::set_hdrsize = 2
9541             OUTPUT:
9542             status
9543              
9544             int
9545             ffrdef(fptr,status)
9546             fitsfile * fptr
9547             int &status
9548             ALIAS:
9549             Astro::FITS::CFITSIO::fits_set_hdustruc = 1
9550             fitsfilePtr::set_hdustruc = 2
9551             OUTPUT:
9552             status
9553              
9554             int
9555             ffpnul(fptr,nulval,status)
9556             fitsfile * fptr
9557             LONGLONG nulval
9558             int &status
9559             ALIAS:
9560             Astro::FITS::CFITSIO::fits_set_imgnull = 1
9561             fitsfilePtr::set_imgnull = 2
9562             OUTPUT:
9563             status
9564              
9565             int
9566             fits_set_noise_bits(fptr, noisebits, status)
9567             fitsfile *fptr
9568             int noisebits
9569             int &status
9570             ALIAS:
9571             fitsfilePtr::set_noise_bits = 1
9572             OUTPUT:
9573             status
9574              
9575             int
9576             fits_set_tile_dim(fptr, ndim, tilesize, status)
9577             fitsfile *fptr
9578             int ndim
9579             long *tilesize
9580             int &status
9581             ALIAS:
9582             fitsfilePtr::set_tile_dim = 1
9583             OUTPUT:
9584             status
9585              
9586             int
9587             fftscl(fptr,colnum,scale,zero,status)
9588             fitsfile * fptr
9589             int colnum
9590             double scale
9591             double zero
9592             int &status
9593             ALIAS:
9594             Astro::FITS::CFITSIO::fits_set_tscale = 1
9595             fitsfilePtr::set_tscale = 2
9596             OUTPUT:
9597             status
9598              
9599             int
9600             ffs2dt(datestr,year,month,day,status)
9601             char * datestr
9602             int year = NO_INIT
9603             int month = NO_INIT
9604             int day = NO_INIT
9605             int status
9606             ALIAS:
9607             Astro::FITS::CFITSIO::fits_str2date = 1
9608             CODE:
9609 0           RETVAL = ffs2dt(datestr,&year,&month,&day,&status);
9610 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),year);
9611 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),month);
9612 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),day);
9613             OUTPUT:
9614             status
9615             RETVAL
9616              
9617             int
9618             ffs2tm(datestr,year,month,day,hour,minute,second,status)
9619             char * datestr
9620             int year = NO_INIT
9621             int month = NO_INIT
9622             int day = NO_INIT
9623             int hour = NO_INIT
9624             int minute = NO_INIT
9625             double second = NO_INIT
9626             int status
9627             ALIAS:
9628             Astro::FITS::CFITSIO::fits_str2time = 1
9629             CODE:
9630 0           RETVAL = ffs2tm(datestr,&year,&month,&day,&hour,&minute,&second,&status);
9631 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),year);
9632 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),month);
9633 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),day);
9634 0 0         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),hour);
9635 0 0         if (ST(5) != &PL_sv_undef) sv_setiv(ST(5),minute);
9636 0 0         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),second);
9637             OUTPUT:
9638             status
9639             RETVAL
9640              
9641             int
9642             fftexp(fptr,expr,datatype,nelem,naxis,naxes,status)
9643             FitsFile * fptr
9644             char * expr
9645             int datatype = NO_INIT
9646             long nelem = NO_INIT
9647             int naxis = NO_INIT
9648             long * naxes = NO_INIT
9649             int status
9650             ALIAS:
9651             Astro::FITS::CFITSIO::fits_test_expr = 1
9652             fitsfilePtr::test_expr = 2
9653             CODE:
9654 0 0         if (ST(5)!=&PL_sv_undef) {
9655 0           fftexp(fptr->fptr,expr,0,&datatype,&nelem,&naxis,NULL,&status);
9656 0           naxes = get_mortalspace(naxis,TLONG);
9657             }
9658             else {
9659 0           naxes = NULL;
9660 0           naxis = 0;
9661             }
9662 0           RETVAL=fftexp(fptr->fptr,expr,naxis,&datatype,&nelem,&naxis,naxes,&status);
9663 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),datatype);
9664 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),nelem);
9665 0 0         if (ST(4)!=&PL_sv_undef) sv_setiv(ST(4),naxis);
9666 0 0         if (ST(5)!=&PL_sv_undef) unpack1D(ST(5),naxes,naxis,TLONG,fptr->perlyunpacking);
9667             OUTPUT:
9668             status
9669             RETVAL
9670              
9671             int
9672             fftheap(fptr,heapsize,unused,overlap,validheap,status)
9673             fitsfile * fptr
9674             LONGLONG &heapsize = NO_INIT
9675             LONGLONG &unused = NO_INIT
9676             LONGLONG &overlap = NO_INIT
9677             int &validheap = NO_INIT
9678             int &status
9679             ALIAS:
9680             Astro::FITS::CFITSIO::fits_test_heap = 1
9681             fitsfilePtr::test_heap = 2
9682             OUTPUT:
9683             heapsize
9684             unused
9685             overlap
9686             validheap
9687             status
9688              
9689             int
9690             fftkey(keyname,status)
9691             char * keyname
9692             int &status
9693             ALIAS:
9694             Astro::FITS::CFITSIO::fits_test_keyword = 1
9695             OUTPUT:
9696             status
9697              
9698             int
9699             fftrec(card,status)
9700             char * card
9701             int &status
9702             ALIAS:
9703             Astro::FITS::CFITSIO::fits_test_record = 1
9704             OUTPUT:
9705             status
9706              
9707             int
9708             fftm2s(year,month,day,hr,min,sec,decimals,datestr,status)
9709             int year
9710             int month
9711             int day
9712             int hr
9713             int min
9714             double sec
9715             int decimals
9716             char * datestr = NO_INIT
9717             int status
9718             ALIAS:
9719             Astro::FITS::CFITSIO::fits_time2str = 1
9720             PREINIT:
9721             int datestrlen;
9722             CODE:
9723 0           datestrlen=21; /* YYYY-MM-DDThh:mm:ss.[ddd...] */
9724 0 0         if (decimals > 0) datestrlen += decimals;
9725 0           datestr = get_mortalspace(datestrlen,TBYTE);
9726 0           RETVAL=fftm2s(year,month,day,hr,min,sec,decimals,datestr,&status);
9727             OUTPUT:
9728             datestr
9729             status
9730             RETVAL
9731              
9732             int
9733             ffgmtf(infptr,outfptr,member,tfopt,status)
9734             fitsfile * infptr
9735             fitsfile * outfptr
9736             long member
9737             int tfopt
9738             int &status
9739             ALIAS:
9740             Astro::FITS::CFITSIO::fits_transfer_member = 1
9741             fitsfilePtr::transfer_member = 2
9742             OUTPUT:
9743             status
9744              
9745             int
9746             ffucrd(fptr,keyname,card,status)
9747             fitsfile *fptr
9748             char * keyname
9749             char * card
9750             int &status
9751             ALIAS:
9752             Astro::FITS::CFITSIO::fits_update_card = 1
9753             fitsfilePtr::update_card = 2
9754             OUTPUT:
9755             status
9756              
9757             int
9758             ffupck(fptr,status)
9759             fitsfile * fptr
9760             int &status
9761             ALIAS:
9762             Astro::FITS::CFITSIO::fits_update_chksum = 1
9763             fitsfilePtr::update_chksum = 2
9764             OUTPUT:
9765             status
9766              
9767             int
9768             ffuky(fptr,datatype,keyname,value,comm,status)
9769             fitsfile * fptr
9770             int datatype
9771             char * keyname
9772             void * value = NO_INIT
9773             char * comm
9774             int status
9775             ALIAS:
9776             Astro::FITS::CFITSIO::fits_update_key = 1
9777             fitsfilePtr::update_key = 2
9778             CODE:
9779 0 0         value = pack1D(ST(3),(datatype == TLOGICAL) ? TINT : datatype);
9780 0           RETVAL=ffuky(fptr,datatype,keyname,value,comm,&status);
9781             OUTPUT:
9782             status
9783             RETVAL
9784              
9785             int
9786             ffukyu(fptr,keyname,comment,status)
9787             fitsfile * fptr
9788             char * keyname
9789             char * comment
9790             int &status
9791             ALIAS:
9792             Astro::FITS::CFITSIO::fits_update_key_null = 1
9793             fitsfilePtr::update_key_null = 2
9794             OUTPUT:
9795             status
9796              
9797             int
9798             ffukys(fptr,keyname,value,comment,status)
9799             fitsfile * fptr
9800             char * keyname
9801             char * value
9802             char * comment
9803             int &status
9804             ALIAS:
9805             Astro::FITS::CFITSIO::fits_update_key_str = 1
9806             fitsfilePtr::update_key_str = 2
9807             OUTPUT:
9808             status
9809              
9810             int
9811             ffukyl(fptr,keyname,value,comment,status)
9812             fitsfile * fptr
9813             char * keyname
9814             int value
9815             char * comment
9816             int &status
9817             ALIAS:
9818             Astro::FITS::CFITSIO::fits_update_key_log = 1
9819             fitsfilePtr::update_key_log = 2
9820             OUTPUT:
9821             status
9822              
9823             int
9824             ffukyj(fptr,keyname,value,comment,status)
9825             fitsfile * fptr
9826             char * keyname
9827             LONGLONG value
9828             char * comment
9829             int &status
9830             ALIAS:
9831             Astro::FITS::CFITSIO::fits_update_key_lng = 1
9832             fitsfilePtr::update_key_lng = 2
9833             OUTPUT:
9834             status
9835              
9836             int
9837             ffukye(fptr,keyname,value,decimals,comment,status)
9838             fitsfile * fptr
9839             char * keyname
9840             float value
9841             int decimals
9842             char * comment
9843             int &status
9844             ALIAS:
9845             Astro::FITS::CFITSIO::fits_update_key_flt = 1
9846             fitsfilePtr::update_key_flt = 2
9847             OUTPUT:
9848             status
9849              
9850             int
9851             ffukyd(fptr,keyname,value,decimals,comment,status)
9852             fitsfile * fptr
9853             char * keyname
9854             double value
9855             int decimals
9856             char * comment
9857             int &status
9858             ALIAS:
9859             Astro::FITS::CFITSIO::fits_update_key_dbl = 1
9860             fitsfilePtr::update_key_dbl = 2
9861             OUTPUT:
9862             status
9863              
9864             int
9865             ffukyf(fptr,keyname,value,decimals,comment,status)
9866             fitsfile * fptr
9867             char * keyname
9868             float value
9869             int decimals
9870             char * comment
9871             int &status
9872             ALIAS:
9873             Astro::FITS::CFITSIO::fits_update_key_fixflt = 1
9874             fitsfilePtr::update_key_fixflt = 2
9875             OUTPUT:
9876             status
9877              
9878             int
9879             ffukyg(fptr,keyname,value,decimals,comment,status)
9880             fitsfile * fptr
9881             char * keyname
9882             double value
9883             int decimals
9884             char * comment
9885             int &status
9886             ALIAS:
9887             Astro::FITS::CFITSIO::fits_update_key_fixdbl = 1
9888             fitsfilePtr::update_key_fixdbl = 2
9889             OUTPUT:
9890             status
9891              
9892             int
9893             ffukyc(fptr,keyname,value,decimals,comment,status)
9894             fitsfile * fptr
9895             char * keyname
9896             float * value
9897             int decimals
9898             char * comment
9899             int &status
9900             ALIAS:
9901             Astro::FITS::CFITSIO::fits_update_key_cmp = 1
9902             fitsfilePtr::update_key_cmp = 2
9903             OUTPUT:
9904             status
9905              
9906             int
9907             ffukym(fptr,keyname,value,decimals,comment,status)
9908             fitsfile * fptr
9909             char * keyname
9910             double * value
9911             int decimals
9912             char * comment
9913             int &status
9914             ALIAS:
9915             Astro::FITS::CFITSIO::fits_update_key_dblcmp = 1
9916             fitsfilePtr::update_key_dblcmp = 2
9917             OUTPUT:
9918             status
9919              
9920             int
9921             ffukfc(fptr,keyname,value,decimals,comment,status)
9922             fitsfile * fptr
9923             char * keyname
9924             cmp * value
9925             int decimals
9926             char * comment
9927             int &status
9928             ALIAS:
9929             Astro::FITS::CFITSIO::fits_update_key_fixcmp = 1
9930             fitsfilePtr::update_key_fixcmp = 2
9931             OUTPUT:
9932             status
9933              
9934             int
9935             ffukfm(fptr,keyname,value,decimals,comment,status)
9936             fitsfile * fptr
9937             char * keyname
9938             dblcmp * value
9939             int decimals
9940             char * comment
9941             int &status
9942             ALIAS:
9943             Astro::FITS::CFITSIO::fits_update_key_fixdblcmp = 1
9944             fitsfilePtr::update_key_fixdblcmp = 2
9945             OUTPUT:
9946             status
9947              
9948             void
9949             ffupch(string)
9950             char * string
9951             ALIAS:
9952             Astro::FITS::CFITSIO::fits_uppercase = 1
9953             OUTPUT:
9954             string
9955              
9956             int
9957             ffurlt(fptr,urlType,status)
9958             fitsfile *fptr
9959             char *urlType = NO_INIT
9960             int status
9961             ALIAS:
9962             Astro::FITS::CFITSIO::fits_url_type = 1
9963             fitsfilePtr::url_type = 2
9964             CODE:
9965 0           urlType = get_mortalspace(FLEN_FILENAME,TBYTE);
9966 0           RETVAL = ffurlt(fptr,urlType,&status);
9967             OUTPUT:
9968             urlType
9969             status
9970             RETVAL
9971            
9972            
9973             int
9974             ffvcks(fptr,dataok,hduok,status)
9975             fitsfile * fptr
9976             int dataok = NO_INIT
9977             int hduok = NO_INIT
9978             int status
9979             ALIAS:
9980             Astro::FITS::CFITSIO::fits_verify_chksum = 1
9981             fitsfilePtr::verify_chksum = 2
9982             CODE:
9983 0           RETVAL = ffvcks(fptr,&dataok,&hduok,&status);
9984 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),dataok); /* value-added */
9985 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),hduok); /* value-added */
9986             OUTPUT:
9987             status
9988             RETVAL
9989              
9990             int
9991             ffgtvf(gfptr,firstfailed,status)
9992             fitsfile * gfptr
9993             long &firstfailed = NO_INIT
9994             int &status
9995             ALIAS:
9996             Astro::FITS::CFITSIO::fits_verify_group = 1
9997             fitsfilePtr::verify_group = 2
9998             OUTPUT:
9999             firstfailed
10000             status
10001              
10002             int
10003             ffxypx(xpos,ypos,xrefval,yrefval,xrefpix,yrefpix,xinc,yinc,rot,coordtype,xpix,ypix,status)
10004             double xpos
10005             double ypos
10006             double xrefval
10007             double yrefval
10008             double xrefpix
10009             double yrefpix
10010             double xinc
10011             double yinc
10012             double rot
10013             char * coordtype
10014             double &xpix = NO_INIT
10015             double &ypix = NO_INIT
10016             int &status
10017             ALIAS:
10018             Astro::FITS::CFITSIO::fits_world_to_pix = 1
10019             OUTPUT:
10020             xpix
10021             ypix
10022             status
10023              
10024             int
10025             ffp2db(fptr,group,dim1,naxis1,naxis2,array,status)
10026             fitsfile * fptr
10027             long group
10028             LONGLONG dim1
10029             LONGLONG naxis1
10030             LONGLONG naxis2
10031             byte * array
10032             int &status
10033             ALIAS:
10034             Astro::FITS::CFITSIO::fits_write_2d_byt = 1
10035             fitsfilePtr::write_2d_byt = 2
10036             OUTPUT:
10037             status
10038              
10039             int
10040             ffp2dsb(fptr,group,dim1,naxis1,naxis2,array,status)
10041             fitsfile * fptr
10042             long group
10043             LONGLONG dim1
10044             LONGLONG naxis1
10045             LONGLONG naxis2
10046             signed char* array
10047             int &status
10048             ALIAS:
10049             Astro::FITS::CFITSIO::fits_write_2d_sbyt = 1
10050             fitsfilePtr::write_2d_sbyt = 2
10051             OUTPUT:
10052             status
10053              
10054             int
10055             ffp2di(fptr,group,dim1,naxis1,naxis2,array,status)
10056             fitsfile * fptr
10057             long group
10058             LONGLONG dim1
10059             LONGLONG naxis1
10060             LONGLONG naxis2
10061             short * array
10062             int &status
10063             ALIAS:
10064             Astro::FITS::CFITSIO::fits_write_2d_sht = 1
10065             fitsfilePtr::write_2d_sht = 2
10066             OUTPUT:
10067             status
10068              
10069             int
10070             ffp2dui(fptr,group,dim1,naxis1,naxis2,array,status)
10071             fitsfile * fptr
10072             long group
10073             LONGLONG dim1
10074             LONGLONG naxis1
10075             LONGLONG naxis2
10076             unsigned short * array
10077             int &status
10078             ALIAS:
10079             Astro::FITS::CFITSIO::fits_write_2d_usht = 1
10080             fitsfilePtr::write_2d_usht = 2
10081             OUTPUT:
10082             status
10083              
10084             int
10085             ffp2dk(fptr,group,dim1,naxis1,naxis2,array,status)
10086             fitsfile * fptr
10087             long group
10088             LONGLONG dim1
10089             LONGLONG naxis1
10090             LONGLONG naxis2
10091             int * array
10092             int &status
10093             ALIAS:
10094             Astro::FITS::CFITSIO::fits_write_2d_int = 1
10095             fitsfilePtr::write_2d_int = 2
10096             OUTPUT:
10097             status
10098              
10099             int
10100             ffp2duk(fptr,group,dim1,naxis1,naxis2,array,status)
10101             fitsfile * fptr
10102             long group
10103             LONGLONG dim1
10104             LONGLONG naxis1
10105             LONGLONG naxis2
10106             unsigned int * array
10107             int &status
10108             ALIAS:
10109             Astro::FITS::CFITSIO::fits_write_2d_uint = 1
10110             fitsfilePtr::write_2d_uint = 2
10111             OUTPUT:
10112             status
10113              
10114             int
10115             ffp2dj(fptr,group,dim1,naxis1,naxis2,array,status)
10116             fitsfile * fptr
10117             long group
10118             LONGLONG dim1
10119             LONGLONG naxis1
10120             LONGLONG naxis2
10121             long * array
10122             int &status
10123             ALIAS:
10124             Astro::FITS::CFITSIO::fits_write_2d_lng = 1
10125             fitsfilePtr::write_2d_lng = 2
10126             OUTPUT:
10127             status
10128              
10129             int
10130             ffp2djj(fptr,group,dim1,naxis1,naxis2,array,status)
10131             fitsfile * fptr
10132             long group
10133             LONGLONG dim1
10134             LONGLONG naxis1
10135             LONGLONG naxis2
10136             LONGLONG* array
10137             int &status
10138             ALIAS:
10139             Astro::FITS::CFITSIO::fits_write_2d_lnglng = 1
10140             fitsfilePtr::write_2d_lnglng = 2
10141             OUTPUT:
10142             status
10143              
10144             int
10145             ffp2duj(fptr,group,dim1,naxis1,naxis2,array,status)
10146             fitsfile * fptr
10147             long group
10148             LONGLONG dim1
10149             LONGLONG naxis1
10150             LONGLONG naxis2
10151             unsigned long * array
10152             int &status
10153             ALIAS:
10154             Astro::FITS::CFITSIO::fits_write_2d_ulng = 1
10155             fitsfilePtr::write_2d_ulng = 2
10156             OUTPUT:
10157             status
10158              
10159             int
10160             ffp2de(fptr,group,dim1,naxis1,naxis2,array,status)
10161             fitsfile * fptr
10162             long group
10163             LONGLONG dim1
10164             LONGLONG naxis1
10165             LONGLONG naxis2
10166             float * array
10167             int &status
10168             ALIAS:
10169             Astro::FITS::CFITSIO::fits_write_2d_flt = 1
10170             fitsfilePtr::write_2d_flt = 2
10171             OUTPUT:
10172             status
10173              
10174             int
10175             ffp2dd(fptr,group,dim1,naxis1,naxis2,array,status)
10176             fitsfile * fptr
10177             long group
10178             LONGLONG dim1
10179             LONGLONG naxis1
10180             LONGLONG naxis2
10181             double * array
10182             int &status
10183             ALIAS:
10184             Astro::FITS::CFITSIO::fits_write_2d_dbl = 1
10185             fitsfilePtr::write_2d_dbl = 2
10186             OUTPUT:
10187             status
10188              
10189             int
10190             ffp3db(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10191             fitsfile * fptr
10192             long group
10193             LONGLONG dim1
10194             LONGLONG dim2
10195             LONGLONG naxis1
10196             LONGLONG naxis2
10197             LONGLONG naxis3
10198             byte * array
10199             int &status
10200             ALIAS:
10201             Astro::FITS::CFITSIO::fits_write_3d_byt = 1
10202             fitsfilePtr::write_3d_byt = 2
10203             OUTPUT:
10204             status
10205              
10206             int
10207             ffp3dsb(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10208             fitsfile * fptr
10209             long group
10210             LONGLONG dim1
10211             LONGLONG dim2
10212             LONGLONG naxis1
10213             LONGLONG naxis2
10214             LONGLONG naxis3
10215             signed char* array
10216             int &status
10217             ALIAS:
10218             Astro::FITS::CFITSIO::fits_write_3d_sbyt = 1
10219             fitsfilePtr::write_3d_sbyt = 2
10220             OUTPUT:
10221             status
10222              
10223             int
10224             ffp3di(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10225             fitsfile * fptr
10226             long group
10227             LONGLONG dim1
10228             LONGLONG dim2
10229             LONGLONG naxis1
10230             LONGLONG naxis2
10231             LONGLONG naxis3
10232             short * array
10233             int &status
10234             ALIAS:
10235             Astro::FITS::CFITSIO::fits_write_3d_sht = 1
10236             fitsfilePtr::write_3d_sht = 2
10237             OUTPUT:
10238             status
10239              
10240             int
10241             ffp3dui(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10242             fitsfile * fptr
10243             long group
10244             LONGLONG dim1
10245             LONGLONG dim2
10246             LONGLONG naxis1
10247             LONGLONG naxis2
10248             LONGLONG naxis3
10249             unsigned short * array
10250             int &status
10251             ALIAS:
10252             Astro::FITS::CFITSIO::fits_write_3d_usht = 1
10253             fitsfilePtr::write_3d_usht = 2
10254             OUTPUT:
10255             status
10256              
10257             int
10258             ffp3dk(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10259             fitsfile * fptr
10260             long group
10261             LONGLONG dim1
10262             LONGLONG dim2
10263             LONGLONG naxis1
10264             LONGLONG naxis2
10265             LONGLONG naxis3
10266             int * array
10267             int &status
10268             ALIAS:
10269             Astro::FITS::CFITSIO::fits_write_3d_int = 1
10270             fitsfilePtr::write_3d_int = 2
10271             OUTPUT:
10272             status
10273              
10274             int
10275             ffp3duk(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10276             fitsfile * fptr
10277             long group
10278             LONGLONG dim1
10279             LONGLONG dim2
10280             LONGLONG naxis1
10281             LONGLONG naxis2
10282             LONGLONG naxis3
10283             unsigned int * array
10284             int &status
10285             ALIAS:
10286             Astro::FITS::CFITSIO::fits_write_3d_uint = 1
10287             fitsfilePtr::write_3d_uint = 2
10288             OUTPUT:
10289             status
10290              
10291             int
10292             ffp3dj(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10293             fitsfile * fptr
10294             long group
10295             LONGLONG dim1
10296             LONGLONG dim2
10297             LONGLONG naxis1
10298             LONGLONG naxis2
10299             LONGLONG naxis3
10300             long * array
10301             int &status
10302             ALIAS:
10303             Astro::FITS::CFITSIO::fits_write_3d_lng = 1
10304             fitsfilePtr::write_3d_lng = 2
10305             OUTPUT:
10306             status
10307              
10308             int
10309             ffp3djj(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10310             fitsfile * fptr
10311             long group
10312             LONGLONG dim1
10313             LONGLONG dim2
10314             LONGLONG naxis1
10315             LONGLONG naxis2
10316             LONGLONG naxis3
10317             LONGLONG* array
10318             int &status
10319             ALIAS:
10320             Astro::FITS::CFITSIO::fits_write_3d_lnglng = 1
10321             fitsfilePtr::write_3d_lnglng = 2
10322             OUTPUT:
10323             status
10324              
10325             int
10326             ffp3duj(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10327             fitsfile * fptr
10328             long group
10329             LONGLONG dim1
10330             LONGLONG dim2
10331             LONGLONG naxis1
10332             LONGLONG naxis2
10333             LONGLONG naxis3
10334             unsigned long * array
10335             int &status
10336             ALIAS:
10337             Astro::FITS::CFITSIO::fits_write_3d_ulng = 1
10338             fitsfilePtr::write_3d_ulng = 2
10339             OUTPUT:
10340             status
10341              
10342             int
10343             ffp3de(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10344             fitsfile * fptr
10345             long group
10346             LONGLONG dim1
10347             LONGLONG dim2
10348             LONGLONG naxis1
10349             LONGLONG naxis2
10350             LONGLONG naxis3
10351             float * array
10352             int &status
10353             ALIAS:
10354             Astro::FITS::CFITSIO::fits_write_3d_flt = 1
10355             fitsfilePtr::write_3d_flt = 2
10356             OUTPUT:
10357             status
10358              
10359             int
10360             ffp3dd(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10361             fitsfile * fptr
10362             long group
10363             LONGLONG dim1
10364             LONGLONG dim2
10365             LONGLONG naxis1
10366             LONGLONG naxis2
10367             LONGLONG naxis3
10368             double * array
10369             int &status
10370             ALIAS:
10371             Astro::FITS::CFITSIO::fits_write_3d_dbl = 1
10372             fitsfilePtr::write_3d_dbl = 2
10373             OUTPUT:
10374             status
10375              
10376             int
10377             ffphtb(fptr,rowlen,nrows,tfields,ttype,tbcol,tform,tunit,extname,status)
10378             fitsfile * fptr
10379             LONGLONG rowlen
10380             LONGLONG nrows
10381             int tfields
10382             char ** ttype
10383             long * tbcol
10384             char ** tform
10385             char ** tunit
10386             char * extname
10387             int &status
10388             ALIAS:
10389             Astro::FITS::CFITSIO::fits_write_atblhdr = 1
10390             fitsfilePtr::write_atblhdr = 2
10391             OUTPUT:
10392             status
10393              
10394             int
10395             ffphbn(fptr,nrows,tfields,ttype,tform,tunit,extname,pcount,status)
10396             fitsfile * fptr
10397             LONGLONG nrows
10398             int tfields
10399             char ** ttype
10400             char ** tform
10401             char ** tunit
10402             char * extname
10403             LONGLONG pcount
10404             int &status
10405             ALIAS:
10406             Astro::FITS::CFITSIO::fits_write_btblhdr = 1
10407             fitsfilePtr::write_btblhdr = 2
10408             OUTPUT:
10409             status
10410              
10411             int
10412             ffphext(fptr, xtension, bitpix, naxis, naxes, pcount, gcount, status)
10413             fitsfile * fptr
10414             char * xtension
10415             int bitpix
10416             int naxis
10417             long * naxes
10418             LONGLONG pcount
10419             LONGLONG gcount
10420             int &status
10421             ALIAS:
10422             Astro::FITS::CFITSIO::fits_write_exthdr = 1
10423             fitsfilePtr::write_exthdr = 2
10424             OUTPUT:
10425             status
10426              
10427             int
10428             ffpcks(fptr,status)
10429             fitsfile * fptr
10430             int &status
10431             ALIAS:
10432             Astro::FITS::CFITSIO::fits_write_chksum = 1
10433             fitsfilePtr::write_chksum = 2
10434             OUTPUT:
10435             status
10436              
10437             int
10438             ffprwu(fptr,firstrow,nelem,status)
10439             fitsfile * fptr
10440             LONGLONG firstrow
10441             LONGLONG nelem
10442             int &status
10443             ALIAS:
10444             Astro::FITS::CFITSIO::fits_write_nullrows = 1
10445             fitsfilePtr::write_nullrows = 2
10446             OUTPUT:
10447             status
10448              
10449             int
10450             ffpclu(fptr,colnum,frow,felem,nelem,status)
10451             fitsfile * fptr
10452             int colnum
10453             LONGLONG frow
10454             LONGLONG felem
10455             LONGLONG nelem
10456             int &status
10457             ALIAS:
10458             Astro::FITS::CFITSIO::fits_write_col_null = 1
10459             fitsfilePtr::write_col_null = 2
10460             OUTPUT:
10461             status
10462              
10463             int
10464             ffpcl(fptr,datatype,colnum,frow,felem,nelem,array,status)
10465             fitsfile * fptr
10466             int datatype
10467             int colnum
10468             LONGLONG frow
10469             LONGLONG felem
10470             LONGLONG nelem
10471             SV * array
10472             int status
10473             ALIAS:
10474             Astro::FITS::CFITSIO::fits_write_col = 1
10475             fitsfilePtr::write_col = 2
10476             PREINIT:
10477             int storage_datatype;
10478             CODE:
10479 0           storage_datatype = datatype;
10480 0 0         if (datatype == TBIT)
10481 0           storage_datatype = TLOGICAL;
10482 0           RETVAL=ffpcl(fptr,datatype,colnum,frow,felem,nelem,packND(array,storage_datatype),&status);
10483             OUTPUT:
10484             status
10485             RETVAL
10486              
10487             int
10488             ffpclx(fptr,cnum,frow,fbit,nbits,larray,status)
10489             fitsfile * fptr
10490             int cnum
10491             LONGLONG frow
10492             long fbit
10493             long nbits
10494             logical * larray
10495             int &status
10496             ALIAS:
10497             Astro::FITS::CFITSIO::fits_write_col_bit = 1
10498             fitsfilePtr::write_col_bit = 2
10499             OUTPUT:
10500             status
10501              
10502             int
10503             ffpcls(fptr,cnum,frow,felem,nelem,array,status)
10504             fitsfile * fptr
10505             int cnum
10506             LONGLONG frow
10507             LONGLONG felem
10508             LONGLONG nelem
10509             char ** array
10510             int &status
10511             ALIAS:
10512             Astro::FITS::CFITSIO::fits_write_col_str = 1
10513             fitsfilePtr::write_col_str = 2
10514             OUTPUT:
10515             status
10516              
10517             int
10518             ffpcll(fptr,cnum,frow,felem,nelem,array,status)
10519             fitsfile * fptr
10520             int cnum
10521             LONGLONG frow
10522             LONGLONG felem
10523             LONGLONG nelem
10524             logical * array
10525             int &status
10526             ALIAS:
10527             Astro::FITS::CFITSIO::fits_write_col_log = 1
10528             fitsfilePtr::write_col_log = 2
10529             OUTPUT:
10530             status
10531              
10532             int
10533             ffpclb(fptr,cnum,frow,felem,nelem,array,status)
10534             fitsfile * fptr
10535             int cnum
10536             LONGLONG frow
10537             LONGLONG felem
10538             LONGLONG nelem
10539             byte * array
10540             int &status
10541             ALIAS:
10542             Astro::FITS::CFITSIO::fits_write_col_byt = 1
10543             fitsfilePtr::write_col_byt = 2
10544             OUTPUT:
10545             status
10546              
10547             int
10548             ffpclsb(fptr,cnum,frow,felem,nelem,array,status)
10549             fitsfile * fptr
10550             int cnum
10551             LONGLONG frow
10552             LONGLONG felem
10553             LONGLONG nelem
10554             signed char* array
10555             int &status
10556             ALIAS:
10557             Astro::FITS::CFITSIO::fits_write_col_sbyt = 1
10558             fitsfilePtr::write_col_sbyt = 2
10559             OUTPUT:
10560             status
10561              
10562             int
10563             ffpclui(fptr,cnum,frow,felem,nelem,array,status)
10564             fitsfile * fptr
10565             int cnum
10566             LONGLONG frow
10567             LONGLONG felem
10568             LONGLONG nelem
10569             unsigned short * array
10570             int &status
10571             ALIAS:
10572             Astro::FITS::CFITSIO::fits_write_col_usht = 1
10573             fitsfilePtr::write_col_usht = 2
10574             OUTPUT:
10575             status
10576              
10577             int
10578             ffpcli(fptr,cnum,frow,felem,nelem,array,status)
10579             fitsfile * fptr
10580             int cnum
10581             LONGLONG frow
10582             LONGLONG felem
10583             LONGLONG nelem
10584             short * array
10585             int &status
10586             ALIAS:
10587             Astro::FITS::CFITSIO::fits_write_col_sht = 1
10588             fitsfilePtr::write_col_sht = 2
10589             OUTPUT:
10590             status
10591              
10592             int
10593             ffpcluk(fptr,cnum,frow,felem,nelem,array,status)
10594             fitsfile * fptr
10595             int cnum
10596             LONGLONG frow
10597             LONGLONG felem
10598             LONGLONG nelem
10599             unsigned int * array
10600             int &status
10601             ALIAS:
10602             Astro::FITS::CFITSIO::fits_write_col_uint = 1
10603             fitsfilePtr::write_col_uint = 2
10604             OUTPUT:
10605             status
10606              
10607             int
10608             ffpclk(fptr,cnum,frow,felem,nelem,array,status)
10609             fitsfile * fptr
10610             int cnum
10611             LONGLONG frow
10612             LONGLONG felem
10613             LONGLONG nelem
10614             int * array
10615             int &status
10616             ALIAS:
10617             Astro::FITS::CFITSIO::fits_write_col_int = 1
10618             fitsfilePtr::write_col_int = 2
10619             OUTPUT:
10620             status
10621              
10622             int
10623             ffpcluj(fptr,cnum,frow,felem,nelem,array,status)
10624             fitsfile * fptr
10625             int cnum
10626             LONGLONG frow
10627             LONGLONG felem
10628             LONGLONG nelem
10629             unsigned long * array
10630             int &status
10631             ALIAS:
10632             Astro::FITS::CFITSIO::fits_write_col_ulng = 1
10633             fitsfilePtr::write_col_ulng = 2
10634             OUTPUT:
10635             status
10636              
10637             int
10638             ffpclj(fptr,cnum,frow,felem,nelem,array,status)
10639             fitsfile * fptr
10640             int cnum
10641             LONGLONG frow
10642             LONGLONG felem
10643             LONGLONG nelem
10644             long * array
10645             int &status
10646             ALIAS:
10647             Astro::FITS::CFITSIO::fits_write_col_lng = 1
10648             fitsfilePtr::write_col_lng = 2
10649             OUTPUT:
10650             status
10651              
10652             int
10653             ffpcljj(fptr,cnum,frow,felem,nelem,array,status)
10654             fitsfile * fptr
10655             int cnum
10656             LONGLONG frow
10657             LONGLONG felem
10658             LONGLONG nelem
10659             LONGLONG* array
10660             int &status
10661             ALIAS:
10662             Astro::FITS::CFITSIO::fits_write_col_lnglng = 1
10663             fitsfilePtr::write_col_lnglng = 2
10664             OUTPUT:
10665             status
10666              
10667             int
10668             ffpcle(fptr,cnum,frow,felem,nelem,array,status)
10669             fitsfile * fptr
10670             int cnum
10671             LONGLONG frow
10672             LONGLONG felem
10673             LONGLONG nelem
10674             float * array
10675             int &status
10676             ALIAS:
10677             Astro::FITS::CFITSIO::fits_write_col_flt = 1
10678             fitsfilePtr::write_col_flt = 2
10679             OUTPUT:
10680             status
10681              
10682             int
10683             ffpcld(fptr,cnum,frow,felem,nelem,array,status)
10684             fitsfile * fptr
10685             int cnum
10686             LONGLONG frow
10687             LONGLONG felem
10688             LONGLONG nelem
10689             double * array
10690             int &status
10691             ALIAS:
10692             Astro::FITS::CFITSIO::fits_write_col_dbl = 1
10693             fitsfilePtr::write_col_dbl = 2
10694             OUTPUT:
10695             status
10696              
10697             int
10698             ffpclc(fptr,cnum,frow,felem,nelem,array,status)
10699             fitsfile * fptr
10700             int cnum
10701             LONGLONG frow
10702             LONGLONG felem
10703             LONGLONG nelem
10704             float * array
10705             int &status
10706             ALIAS:
10707             Astro::FITS::CFITSIO::fits_write_col_cmp = 1
10708             fitsfilePtr::write_col_cmp = 2
10709             OUTPUT:
10710             status
10711              
10712             int
10713             ffpclm(fptr,cnum,frow,felem,nelem,array,status)
10714             fitsfile * fptr
10715             int cnum
10716             LONGLONG frow
10717             LONGLONG felem
10718             LONGLONG nelem
10719             double * array
10720             int &status
10721             ALIAS:
10722             Astro::FITS::CFITSIO::fits_write_col_dblcmp = 1
10723             fitsfilePtr::write_col_dblcmp = 2
10724             OUTPUT:
10725             status
10726              
10727             int
10728             ffpcn(fptr,datatype,colnum,frow,felem,nelem,array,nulval,status)
10729             fitsfile * fptr
10730             int datatype
10731             int colnum
10732             LONGLONG frow
10733             LONGLONG felem
10734             LONGLONG nelem
10735             SV * array
10736             SV * nulval
10737             int status
10738             ALIAS:
10739             Astro::FITS::CFITSIO::fits_write_colnull = 1
10740             fitsfilePtr::write_colnull = 2
10741             PREINIT:
10742             int storage_datatype;
10743             CODE:
10744 0           storage_datatype = datatype;
10745 0 0         if (datatype == TBIT)
10746 0           storage_datatype = TLOGICAL;
10747 0 0         RETVAL=ffpcn(
10748             fptr,
10749             datatype,
10750             colnum,
10751             frow, felem, nelem,
10752             packND(array,storage_datatype),
10753             (nulval!=&PL_sv_undef) ? pack1D(nulval, storage_datatype) : NULL,
10754             &status);
10755             OUTPUT:
10756             status
10757             RETVAL
10758              
10759             int
10760             ffpcns(fptr,cnum,frow,felem,nelem,array,nulstr,status)
10761             fitsfile * fptr
10762             int cnum
10763             LONGLONG frow
10764             LONGLONG felem
10765             LONGLONG nelem
10766             char ** array
10767             char * nulstr
10768             int &status
10769             ALIAS:
10770             Astro::FITS::CFITSIO::fits_write_colnull_str = 1
10771             fitsfilePtr::write_colnull_str = 2
10772             OUTPUT:
10773             status
10774              
10775             int
10776             ffpcnl(fptr,cnum,frow,felem,nelem,array,nulval,status)
10777             fitsfile * fptr
10778             int cnum
10779             LONGLONG frow
10780             LONGLONG felem
10781             LONGLONG nelem
10782             logical * array
10783             logical nulval
10784             int &status
10785             ALIAS:
10786             Astro::FITS::CFITSIO::fits_write_colnull_log = 1
10787             fitsfilePtr::write_colnull_log = 2
10788             OUTPUT:
10789             status
10790              
10791             int
10792             ffpcnb(fptr,cnum,frow,felem,nelem,array,nulval,status)
10793             fitsfile * fptr
10794             int cnum
10795             LONGLONG frow
10796             LONGLONG felem
10797             LONGLONG nelem
10798             byte * array
10799             byte nulval
10800             int &status
10801             ALIAS:
10802             Astro::FITS::CFITSIO::fits_write_colnull_byt = 1
10803             fitsfilePtr::write_colnull_byt = 2
10804             OUTPUT:
10805             status
10806              
10807             int
10808             ffpcnsb(fptr,cnum,frow,felem,nelem,array,nulval,status)
10809             fitsfile * fptr
10810             int cnum
10811             LONGLONG frow
10812             LONGLONG felem
10813             LONGLONG nelem
10814             signed char* array
10815             signed char nulval
10816             int &status
10817             ALIAS:
10818             Astro::FITS::CFITSIO::fits_write_colnull_sbyt = 1
10819             fitsfilePtr::write_colnull_sbyt = 2
10820             OUTPUT:
10821             status
10822              
10823             int
10824             ffpcnui(fptr,cnum,frow,felem,nelem,array,nulval,status)
10825             fitsfile * fptr
10826             int cnum
10827             LONGLONG frow
10828             LONGLONG felem
10829             LONGLONG nelem
10830             unsigned short * array
10831             unsigned short nulval
10832             int &status
10833             ALIAS:
10834             Astro::FITS::CFITSIO::fits_write_colnull_usht = 1
10835             fitsfilePtr::write_colnull_usht = 2
10836             OUTPUT:
10837             status
10838              
10839             int
10840             ffpcni(fptr,cnum,frow,felem,nelem,array,nulval,status)
10841             fitsfile * fptr
10842             int cnum
10843             LONGLONG frow
10844             LONGLONG felem
10845             LONGLONG nelem
10846             short * array
10847             short nulval
10848             int &status
10849             ALIAS:
10850             Astro::FITS::CFITSIO::fits_write_colnull_sht = 1
10851             fitsfilePtr::write_colnull_sht = 2
10852             OUTPUT:
10853             status
10854              
10855             int
10856             ffpcnuk(fptr,cnum,frow,felem,nelem,array,nulval,status)
10857             fitsfile * fptr
10858             int cnum
10859             LONGLONG frow
10860             LONGLONG felem
10861             LONGLONG nelem
10862             unsigned int * array
10863             unsigned int nulval
10864             int &status
10865             ALIAS:
10866             Astro::FITS::CFITSIO::fits_write_colnull_uint = 1
10867             fitsfilePtr::write_colnull_uint = 2
10868             OUTPUT:
10869             status
10870              
10871             int
10872             ffpcnk(fptr,cnum,frow,felem,nelem,array,nulval,status)
10873             fitsfile * fptr
10874             int cnum
10875             LONGLONG frow
10876             LONGLONG felem
10877             LONGLONG nelem
10878             int * array
10879             int nulval
10880             int &status
10881             ALIAS:
10882             Astro::FITS::CFITSIO::fits_write_colnull_int = 1
10883             fitsfilePtr::write_colnull_int = 2
10884             OUTPUT:
10885             status
10886              
10887             int
10888             ffpcnuj(fptr,cnum,frow,felem,nelem,array,nulval,status)
10889             fitsfile * fptr
10890             int cnum
10891             LONGLONG frow
10892             LONGLONG felem
10893             LONGLONG nelem
10894             unsigned long * array
10895             unsigned long nulval
10896             int &status
10897             ALIAS:
10898             Astro::FITS::CFITSIO::fits_write_colnull_ulng = 1
10899             fitsfilePtr::write_colnull_ulng = 2
10900             OUTPUT:
10901             status
10902              
10903             int
10904             ffpcnj(fptr,cnum,frow,felem,nelem,array,nulval,status)
10905             fitsfile * fptr
10906             int cnum
10907             LONGLONG frow
10908             LONGLONG felem
10909             LONGLONG nelem
10910             long * array
10911             long nulval
10912             int &status
10913             ALIAS:
10914             Astro::FITS::CFITSIO::fits_write_colnull_lng = 1
10915             fitsfilePtr::write_colnull_lng = 2
10916             OUTPUT:
10917             status
10918              
10919             int
10920             ffpcnjj(fptr,cnum,frow,felem,nelem,array,nulval,status)
10921             fitsfile * fptr
10922             int cnum
10923             LONGLONG frow
10924             LONGLONG felem
10925             LONGLONG nelem
10926             LONGLONG* array
10927             LONGLONG nulval
10928             int &status
10929             ALIAS:
10930             Astro::FITS::CFITSIO::fits_write_colnull_lnglng = 1
10931             fitsfilePtr::write_colnull_lnglng = 2
10932             OUTPUT:
10933             status
10934              
10935             int
10936             ffpcne(fptr,cnum,frow,felem,nelem,array,nulval,status)
10937             fitsfile * fptr
10938             int cnum
10939             LONGLONG frow
10940             LONGLONG felem
10941             LONGLONG nelem
10942             float * array
10943             float nulval
10944             int &status
10945             ALIAS:
10946             Astro::FITS::CFITSIO::fits_write_colnull_flt = 1
10947             fitsfilePtr::write_colnull_flt = 2
10948             OUTPUT:
10949             status
10950              
10951             int
10952             ffpcnd(fptr,cnum,frow,felem,nelem,array,nulval,status)
10953             fitsfile * fptr
10954             int cnum
10955             LONGLONG frow
10956             LONGLONG felem
10957             LONGLONG nelem
10958             double * array
10959             double nulval
10960             int &status
10961             ALIAS:
10962             Astro::FITS::CFITSIO::fits_write_colnull_dbl = 1
10963             fitsfilePtr::write_colnull_dbl = 2
10964             OUTPUT:
10965             status
10966              
10967             int
10968             ffpcom(fptr,comment,status)
10969             fitsfile * fptr
10970             char * comment
10971             int &status
10972             ALIAS:
10973             Astro::FITS::CFITSIO::fits_write_comment = 1
10974             fitsfilePtr::write_comment = 2
10975             OUTPUT:
10976             status
10977              
10978             int
10979             ffpdat(fptr,status)
10980             fitsfile * fptr
10981             int &status
10982             ALIAS:
10983             Astro::FITS::CFITSIO::fits_write_date = 1
10984             fitsfilePtr::write_date = 2
10985             OUTPUT:
10986             status
10987              
10988             int
10989             ffpdes(fptr,colnum,rownum,repeat,offset,status)
10990             fitsfile * fptr
10991             int colnum
10992             LONGLONG rownum
10993             LONGLONG repeat
10994             LONGLONG offset
10995             int &status
10996             ALIAS:
10997             Astro::FITS::CFITSIO::fits_write_descript = 1
10998             fitsfilePtr::write_descript = 2
10999             OUTPUT:
11000             status
11001              
11002             void
11003             ffpmsg(err_msg)
11004             char * err_msg
11005             ALIAS:
11006             Astro::FITS::CFITSIO::fits_write_errmsg = 1
11007              
11008             int
11009             ffpgpb(fptr,group,felem,nelem,array,status)
11010             fitsfile * fptr
11011             long group
11012             long felem
11013             long nelem
11014             byte * array
11015             int &status
11016             ALIAS:
11017             Astro::FITS::CFITSIO::fits_write_grppar_byt = 1
11018             fitsfilePtr::write_grppar_byt = 2
11019             OUTPUT:
11020             status
11021              
11022             int
11023             ffpgpsb(fptr,group,felem,nelem,array,status)
11024             fitsfile * fptr
11025             long group
11026             long felem
11027             long nelem
11028             signed char* array
11029             int &status
11030             ALIAS:
11031             Astro::FITS::CFITSIO::fits_write_grppar_sbyt = 1
11032             fitsfilePtr::write_grppar_sbyt = 2
11033             OUTPUT:
11034             status
11035              
11036             int
11037             ffpgpui(fptr,group,felem,nelem,array,status)
11038             fitsfile * fptr
11039             long group
11040             long felem
11041             long nelem
11042             unsigned short * array
11043             int &status
11044             ALIAS:
11045             Astro::FITS::CFITSIO::fits_write_grppar_usht = 1
11046             fitsfilePtr::write_grppar_usht = 2
11047             OUTPUT:
11048             status
11049              
11050             int
11051             ffpgpi(fptr,group,felem,nelem,array,status)
11052             fitsfile * fptr
11053             long group
11054             long felem
11055             long nelem
11056             short * array
11057             int &status
11058             ALIAS:
11059             Astro::FITS::CFITSIO::fits_write_grppar_sht = 1
11060             fitsfilePtr::write_grppar_sht = 2
11061             OUTPUT:
11062             status
11063              
11064             int
11065             ffpgpuk(fptr,group,felem,nelem,array,status)
11066             fitsfile * fptr
11067             long group
11068             long felem
11069             long nelem
11070             unsigned int * array
11071             int &status
11072             ALIAS:
11073             Astro::FITS::CFITSIO::fits_write_grppar_uint = 1
11074             fitsfilePtr::write_grppar_uint = 2
11075             OUTPUT:
11076             status
11077              
11078             int
11079             ffpgpk(fptr,group,felem,nelem,array,status)
11080             fitsfile * fptr
11081             long group
11082             long felem
11083             long nelem
11084             int * array
11085             int &status
11086             ALIAS:
11087             Astro::FITS::CFITSIO::fits_write_grppar_int = 1
11088             fitsfilePtr::write_grppar_int = 2
11089             OUTPUT:
11090             status
11091              
11092             int
11093             ffpgpuj(fptr,group,felem,nelem,array,status)
11094             fitsfile * fptr
11095             long group
11096             long felem
11097             long nelem
11098             unsigned long * array
11099             int &status
11100             ALIAS:
11101             Astro::FITS::CFITSIO::fits_write_grppar_ulng = 1
11102             fitsfilePtr::write_grppar_ulng = 2
11103             OUTPUT:
11104             status
11105              
11106             int
11107             ffpgpj(fptr,group,felem,nelem,array,status)
11108             fitsfile * fptr
11109             long group
11110             long felem
11111             long nelem
11112             long * array
11113             int &status
11114             ALIAS:
11115             Astro::FITS::CFITSIO::fits_write_grppar_lng = 1
11116             fitsfilePtr::write_grppar_lng = 2
11117             OUTPUT:
11118             status
11119              
11120             int
11121             ffpgpjj(fptr,group,felem,nelem,array,status)
11122             fitsfile * fptr
11123             long group
11124             long felem
11125             long nelem
11126             LONGLONG* array
11127             int &status
11128             ALIAS:
11129             Astro::FITS::CFITSIO::fits_write_grppar_lnglng = 1
11130             fitsfilePtr::write_grppar_lnglng = 2
11131             OUTPUT:
11132             status
11133              
11134             int
11135             ffpgpe(fptr,group,felem,nelem,array,status)
11136             fitsfile * fptr
11137             long group
11138             long felem
11139             long nelem
11140             float * array
11141             int &status
11142             ALIAS:
11143             Astro::FITS::CFITSIO::fits_write_grppar_flt = 1
11144             fitsfilePtr::write_grppar_flt = 2
11145             OUTPUT:
11146             status
11147              
11148             int
11149             ffpgpd(fptr,group,felem,nelem,array,status)
11150             fitsfile * fptr
11151             long group
11152             long felem
11153             long nelem
11154             double * array
11155             int &status
11156             ALIAS:
11157             Astro::FITS::CFITSIO::fits_write_grppar_dbl = 1
11158             fitsfilePtr::write_grppar_dbl = 2
11159             OUTPUT:
11160             status
11161              
11162             int
11163             ffphis(fptr,history,status)
11164             fitsfile * fptr
11165             char * history
11166             int &status
11167             ALIAS:
11168             Astro::FITS::CFITSIO::fits_write_history = 1
11169             fitsfilePtr::write_history = 2
11170             OUTPUT:
11171             status
11172              
11173             int
11174             ffppr(fptr,datatype,firstelem,nelem,array,status)
11175             fitsfile * fptr
11176             int datatype
11177             LONGLONG firstelem
11178             LONGLONG nelem
11179             SV * array
11180             int status
11181             ALIAS:
11182             Astro::FITS::CFITSIO::fits_write_img = 1
11183             fitsfilePtr::write_img = 2
11184             CODE:
11185 0           RETVAL=ffppr(fptr,datatype,firstelem,nelem,packND(array,datatype),&status);
11186             OUTPUT:
11187             status
11188             RETVAL
11189              
11190             int
11191             ffppru(fptr,group,felem,nelem,status)
11192             fitsfile * fptr
11193             long group
11194             LONGLONG felem
11195             LONGLONG nelem
11196             int &status
11197             ALIAS:
11198             Astro::FITS::CFITSIO::fits_write_img_null = 1
11199             fitsfilePtr::write_img_null = 2
11200             OUTPUT:
11201             status
11202              
11203             int
11204             ffpprb(fptr,group,felem,nelem,array,status)
11205             fitsfile * fptr
11206             long group
11207             LONGLONG nelem
11208             LONGLONG felem
11209             byte * array
11210             int &status
11211             ALIAS:
11212             Astro::FITS::CFITSIO::fits_write_img_byt = 1
11213             fitsfilePtr::write_img_byt = 2
11214             OUTPUT:
11215             status
11216              
11217             int
11218             ffpprsb(fptr,group,felem,nelem,array,status)
11219             fitsfile * fptr
11220             long group
11221             LONGLONG nelem
11222             LONGLONG felem
11223             signed char* array
11224             int &status
11225             ALIAS:
11226             Astro::FITS::CFITSIO::fits_write_img_sbyt = 1
11227             fitsfilePtr::write_img_sbyt = 2
11228             OUTPUT:
11229             status
11230              
11231             int
11232             ffpprui(fptr,group,felem,nelem,array,status)
11233             fitsfile * fptr
11234             long group
11235             LONGLONG nelem
11236             LONGLONG felem
11237             unsigned short * array
11238             int &status
11239             ALIAS:
11240             Astro::FITS::CFITSIO::fits_write_img_usht = 1
11241             fitsfilePtr::write_img_usht = 2
11242             OUTPUT:
11243             status
11244              
11245             int
11246             ffppri(fptr,group,felem,nelem,array,status)
11247             fitsfile * fptr
11248             long group
11249             LONGLONG nelem
11250             LONGLONG felem
11251             short * array
11252             int &status
11253             ALIAS:
11254             Astro::FITS::CFITSIO::fits_write_img_sht = 1
11255             fitsfilePtr::write_img_sht = 2
11256             OUTPUT:
11257             status
11258              
11259             int
11260             ffppruk(fptr,group,felem,nelem,array,status)
11261             fitsfile * fptr
11262             long group
11263             LONGLONG nelem
11264             LONGLONG felem
11265             unsigned int * array
11266             int &status
11267             ALIAS:
11268             Astro::FITS::CFITSIO::fits_write_img_uint = 1
11269             fitsfilePtr::write_img_uint = 2
11270             OUTPUT:
11271             status
11272              
11273             int
11274             ffpprk(fptr,group,felem,nelem,array,status)
11275             fitsfile * fptr
11276             long group
11277             LONGLONG nelem
11278             LONGLONG felem
11279             int * array
11280             int &status
11281             ALIAS:
11282             Astro::FITS::CFITSIO::fits_write_img_int = 1
11283             fitsfilePtr::write_img_int = 2
11284             OUTPUT:
11285             status
11286              
11287             int
11288             ffppruj(fptr,group,felem,nelem,array,status)
11289             fitsfile * fptr
11290             long group
11291             LONGLONG nelem
11292             LONGLONG felem
11293             unsigned long * array
11294             int &status
11295             ALIAS:
11296             Astro::FITS::CFITSIO::fits_write_img_ulng = 1
11297             fitsfilePtr::write_img_ulng = 2
11298             OUTPUT:
11299             status
11300              
11301             int
11302             ffpprj(fptr,group,felem,nelem,array,status)
11303             fitsfile * fptr
11304             long group
11305             LONGLONG nelem
11306             LONGLONG felem
11307             long * array
11308             int &status
11309             ALIAS:
11310             Astro::FITS::CFITSIO::fits_write_img_lng = 1
11311             fitsfilePtr::write_img_lng = 2
11312             OUTPUT:
11313             status
11314              
11315             int
11316             ffpprjj(fptr,group,felem,nelem,array,status)
11317             fitsfile * fptr
11318             long group
11319             LONGLONG nelem
11320             LONGLONG felem
11321             LONGLONG* array
11322             int &status
11323             ALIAS:
11324             Astro::FITS::CFITSIO::fits_write_img_lnglng = 1
11325             fitsfilePtr::write_img_lnglng = 2
11326             OUTPUT:
11327             status
11328              
11329             int
11330             ffppre(fptr,group,felem,nelem,array,status)
11331             fitsfile * fptr
11332             long group
11333             LONGLONG nelem
11334             LONGLONG felem
11335             float * array
11336             int &status
11337             ALIAS:
11338             Astro::FITS::CFITSIO::fits_write_img_flt = 1
11339             fitsfilePtr::write_img_flt = 2
11340             OUTPUT:
11341             status
11342              
11343             int
11344             ffpprd(fptr,group,felem,nelem,array,status)
11345             fitsfile * fptr
11346             long group
11347             LONGLONG nelem
11348             LONGLONG felem
11349             double * array
11350             int &status
11351             ALIAS:
11352             Astro::FITS::CFITSIO::fits_write_img_dbl = 1
11353             fitsfilePtr::write_img_dbl = 2
11354             OUTPUT:
11355             status
11356              
11357             int
11358             ffphps(fptr,bitpix,naxis,naxes,status)
11359             fitsfile * fptr
11360             int bitpix
11361             int naxis
11362             long * naxes
11363             int &status
11364             ALIAS:
11365             Astro::FITS::CFITSIO::fits_write_imghdr = 1
11366             fitsfilePtr::write_imghdr = 2
11367             OUTPUT:
11368             status
11369              
11370             int
11371             ffphpsll(fptr,bitpix,naxis,naxes,status)
11372             fitsfile * fptr
11373             int bitpix
11374             int naxis
11375             LONGLONG * naxes
11376             int &status
11377             ALIAS:
11378             Astro::FITS::CFITSIO::fits_write_imghdrll = 1
11379             fitsfilePtr::write_imghdrll = 2
11380             OUTPUT:
11381             status
11382              
11383             int
11384             ffphpr(fptr,simple,bitpix,naxis,naxes,pcount,gcount,extend,status)
11385             fitsfile * fptr
11386             int simple
11387             int bitpix
11388             int naxis
11389             long * naxes
11390             LONGLONG pcount
11391             LONGLONG gcount
11392             int extend
11393             int &status
11394             ALIAS:
11395             Astro::FITS::CFITSIO::fits_write_grphdr = 1
11396             fitsfilePtr::write_grphdr = 2
11397             OUTPUT:
11398             status
11399              
11400             int
11401             ffphprll(fptr,simple,bitpix,naxis,naxes,pcount,gcount,extend,status)
11402             fitsfile * fptr
11403             int simple
11404             int bitpix
11405             int naxis
11406             LONGLONG* naxes
11407             LONGLONG pcount
11408             LONGLONG gcount
11409             int extend
11410             int &status
11411             ALIAS:
11412             Astro::FITS::CFITSIO::fits_write_grphdrll = 1
11413             fitsfilePtr::write_grphdrll = 2
11414             OUTPUT:
11415             status
11416              
11417             int
11418             ffppn(fptr,datatype,felem,nelem,array,nulval,status)
11419             fitsfile * fptr
11420             int datatype
11421             LONGLONG felem
11422             LONGLONG nelem
11423             SV * array
11424             SV * nulval
11425             int status
11426             ALIAS:
11427             Astro::FITS::CFITSIO::fits_write_imgnull = 1
11428             fitsfilePtr::write_imgnull = 2
11429             CODE:
11430 0           RETVAL=ffppn(fptr,datatype,felem,nelem,packND(array,datatype),pack1D(nulval,datatype),&status);
11431             OUTPUT:
11432             status
11433             RETVAL
11434              
11435             int
11436             ffppnb(fptr,group,felem,nelem,array,nulval,status)
11437             fitsfile * fptr
11438             long group
11439             LONGLONG felem
11440             LONGLONG nelem
11441             byte * array
11442             byte nulval
11443             int &status
11444             ALIAS:
11445             Astro::FITS::CFITSIO::fits_write_imgnull_byt = 1
11446             fitsfilePtr::write_imgnull_byt = 2
11447             OUTPUT:
11448             status
11449              
11450             int
11451             ffppnsb(fptr,group,felem,nelem,array,nulval,status)
11452             fitsfile * fptr
11453             long group
11454             LONGLONG felem
11455             LONGLONG nelem
11456             signed char* array
11457             signed char nulval
11458             int &status
11459             ALIAS:
11460             Astro::FITS::CFITSIO::fits_write_imgnull_sbyt = 1
11461             fitsfilePtr::write_imgnull_sbyt = 2
11462             OUTPUT:
11463             status
11464              
11465             int
11466             ffppnui(fptr,group,felem,nelem,array,nulval,status)
11467             fitsfile * fptr
11468             long group
11469             LONGLONG felem
11470             LONGLONG nelem
11471             unsigned short * array
11472             unsigned short nulval
11473             int &status
11474             ALIAS:
11475             Astro::FITS::CFITSIO::fits_write_imgnull_usht = 1
11476             fitsfilePtr::write_imgnull_usht = 2
11477             OUTPUT:
11478             status
11479              
11480             int
11481             ffppni(fptr,group,felem,nelem,array,nulval,status)
11482             fitsfile * fptr
11483             long group
11484             LONGLONG felem
11485             LONGLONG nelem
11486             short * array
11487             short nulval
11488             int &status
11489             ALIAS:
11490             Astro::FITS::CFITSIO::fits_write_imgnull_sht = 1
11491             fitsfilePtr::write_imgnull_sht = 2
11492             OUTPUT:
11493             status
11494              
11495             int
11496             ffppnuk(fptr,group,felem,nelem,array,nulval,status)
11497             fitsfile * fptr
11498             long group
11499             LONGLONG felem
11500             LONGLONG nelem
11501             unsigned int * array
11502             unsigned int nulval
11503             int &status
11504             ALIAS:
11505             Astro::FITS::CFITSIO::fits_write_imgnull_uint = 1
11506             fitsfilePtr::write_imgnull_uint = 2
11507             OUTPUT:
11508             status
11509              
11510             int
11511             ffppnk(fptr,group,felem,nelem,array,nulval,status)
11512             fitsfile * fptr
11513             long group
11514             LONGLONG felem
11515             LONGLONG nelem
11516             int * array
11517             int nulval
11518             int &status
11519             ALIAS:
11520             Astro::FITS::CFITSIO::fits_write_imgnull_int = 1
11521             fitsfilePtr::write_imgnull_int = 2
11522             OUTPUT:
11523             status
11524              
11525             int
11526             ffppnuj(fptr,group,felem,nelem,array,nulval,status)
11527             fitsfile * fptr
11528             long group
11529             LONGLONG felem
11530             LONGLONG nelem
11531             unsigned long * array
11532             unsigned long nulval
11533             int &status
11534             ALIAS:
11535             Astro::FITS::CFITSIO::fits_write_imgnull_ulng = 1
11536             fitsfilePtr::write_imgnull_ulng = 2
11537             OUTPUT:
11538             status
11539              
11540             int
11541             ffppnj(fptr,group,felem,nelem,array,nulval,status)
11542             fitsfile * fptr
11543             long group
11544             LONGLONG felem
11545             LONGLONG nelem
11546             long * array
11547             long nulval
11548             int &status
11549             ALIAS:
11550             Astro::FITS::CFITSIO::fits_write_imgnull_lng = 1
11551             fitsfilePtr::write_imgnull_lng = 2
11552             OUTPUT:
11553             status
11554              
11555             int
11556             ffppnjj(fptr,group,felem,nelem,array,nulval,status)
11557             fitsfile * fptr
11558             long group
11559             LONGLONG felem
11560             LONGLONG nelem
11561             LONGLONG* array
11562             LONGLONG nulval
11563             int &status
11564             ALIAS:
11565             Astro::FITS::CFITSIO::fits_write_imgnull_lnglng = 1
11566             fitsfilePtr::write_imgnull_lnglng = 2
11567             OUTPUT:
11568             status
11569              
11570             int
11571             ffppne(fptr,group,felem,nelem,array,nulval,status)
11572             fitsfile * fptr
11573             long group
11574             LONGLONG felem
11575             LONGLONG nelem
11576             float * array
11577             float nulval
11578             int &status
11579             ALIAS:
11580             Astro::FITS::CFITSIO::fits_write_imgnull_flt = 1
11581             fitsfilePtr::write_imgnull_flt = 2
11582             OUTPUT:
11583             status
11584              
11585             int
11586             ffppnd(fptr,group,felem,nelem,array,nulval,status)
11587             fitsfile * fptr
11588             long group
11589             LONGLONG felem
11590             LONGLONG nelem
11591             double * array
11592             double nulval
11593             int &status
11594             ALIAS:
11595             Astro::FITS::CFITSIO::fits_write_imgnull_dbl = 1
11596             fitsfilePtr::write_imgnull_dbl = 2
11597             OUTPUT:
11598             status
11599              
11600             int
11601             ffpky(fptr,datatype,keyname,value,comment,status)
11602             fitsfile * fptr
11603             int datatype
11604             char * keyname
11605             void * value = NO_INIT
11606             char * comment
11607             int status
11608             ALIAS:
11609             Astro::FITS::CFITSIO::fits_write_key = 1
11610             fitsfilePtr::write_key = 2
11611             CODE:
11612 8 100         value = pack1D(ST(3),(datatype == TLOGICAL) ? TINT : datatype);
11613 8           RETVAL=ffpky(fptr,datatype,keyname,value,comment,&status);
11614             OUTPUT:
11615             status
11616             RETVAL
11617              
11618             int
11619             ffpkls(fptr,keyname,longstr,comment,status)
11620             fitsfile * fptr
11621             char * keyname
11622             char * longstr
11623             char * comment
11624             int &status
11625             ALIAS:
11626             Astro::FITS::CFITSIO::fits_write_key_longstr = 1
11627             fitsfilePtr::write_key_longstr = 2
11628             OUTPUT:
11629             status
11630              
11631             int
11632             ffukls(fptr,keynam,value,comm,status)
11633             fitsfile * fptr
11634             char * keynam
11635             char * value
11636             char * comm
11637             int &status
11638             ALIAS:
11639             Astro::FITS::CFITSIO::fits_update_key_longstr = 1
11640             fitsfilePtr::update_key_longstr = 2
11641             OUTPUT:
11642             status
11643              
11644             int
11645             ffikls(fptr,keynam,value,comm,status)
11646             fitsfile * fptr
11647             char * keynam
11648             char * value
11649             char * comm
11650             int &status
11651             ALIAS:
11652             Astro::FITS::CFITSIO::fits_insert_key_longstr = 1
11653             fitsfilePtr::insert_key_longstr = 2
11654             OUTPUT:
11655             status
11656              
11657             int
11658             ffmkls(fptr,keynam,value,comm,status)
11659             fitsfile * fptr
11660             char * keynam
11661             char * value
11662             char * comm
11663             int &status
11664             ALIAS:
11665             Astro::FITS::CFITSIO::fits_modify_key_longstr = 1
11666             fitsfilePtr::modify_key_longstr = 2
11667             OUTPUT:
11668             status
11669              
11670             int
11671             ffplsw(fptr,status)
11672             fitsfile * fptr
11673             int &status
11674             ALIAS:
11675             Astro::FITS::CFITSIO::fits_write_key_longwarn = 1
11676             fitsfilePtr::write_key_longwarn = 2
11677             OUTPUT:
11678             status
11679              
11680             int
11681             ffpkyu(fptr,keyname,comment,status)
11682             fitsfile * fptr
11683             char * keyname
11684             char * comment
11685             int &status
11686             ALIAS:
11687             Astro::FITS::CFITSIO::fits_write_key_null = 1
11688             fitsfilePtr::write_key_null = 2
11689             OUTPUT:
11690             status
11691              
11692             int
11693             ffpktp(fptr,filename,status)
11694             fitsfile * fptr
11695             char * filename
11696             int &status
11697             ALIAS:
11698             Astro::FITS::CFITSIO::fits_write_key_template = 1
11699             fitsfilePtr::write_key_template = 2
11700             OUTPUT:
11701             status
11702              
11703             int
11704             ffpkyt(fptr,keyname,intval,frac,comment,status)
11705             fitsfile * fptr
11706             char * keyname
11707             long intval
11708             double frac
11709             char * comment
11710             int &status
11711             ALIAS:
11712             Astro::FITS::CFITSIO::fits_write_key_triple = 1
11713             fitsfilePtr::write_key_triple = 2
11714             OUTPUT:
11715             status
11716              
11717             int
11718             ffpunt(fptr,keyname,unit,status)
11719             fitsfile * fptr
11720             char * keyname
11721             char * unit
11722             int &status
11723             ALIAS:
11724             Astro::FITS::CFITSIO::fits_write_key_unit = 1
11725             fitsfilePtr::write_key_unit = 2
11726             OUTPUT:
11727             status
11728              
11729             int
11730             ffpkys(fptr,keyname,value,comment,status)
11731             fitsfile * fptr
11732             char * keyname
11733             char * value
11734             char * comment
11735             int &status
11736             ALIAS:
11737             Astro::FITS::CFITSIO::fits_write_key_str = 1
11738             fitsfilePtr::write_key_str = 2
11739             OUTPUT:
11740             status
11741              
11742             int
11743             ffpkyl(fptr,keyname,value,comment,status)
11744             fitsfile * fptr
11745             char * keyname
11746             int value
11747             char * comment
11748             int &status
11749             ALIAS:
11750             Astro::FITS::CFITSIO::fits_write_key_log = 1
11751             fitsfilePtr::write_key_log = 2
11752             OUTPUT:
11753             status
11754              
11755             int
11756             ffpkyj(fptr,keyname,value,comment,status)
11757             fitsfile * fptr
11758             char * keyname
11759             LONGLONG value
11760             char * comment
11761             int &status
11762             ALIAS:
11763             Astro::FITS::CFITSIO::fits_write_key_lng = 1
11764             fitsfilePtr::write_key_lng = 2
11765             OUTPUT:
11766             status
11767              
11768             int
11769             ffpkye(fptr,keyname,value,decimals,comment,status)
11770             fitsfile * fptr
11771             char * keyname
11772             float value
11773             int decimals
11774             char * comment
11775             int &status
11776             ALIAS:
11777             Astro::FITS::CFITSIO::fits_write_key_flt = 1
11778             fitsfilePtr::write_key_flt = 2
11779             OUTPUT:
11780             status
11781              
11782             int
11783             ffpkyf(fptr,keyname,value,decimals,comment,status)
11784             fitsfile * fptr
11785             char * keyname
11786             float value
11787             int decimals
11788             char * comment
11789             int &status
11790             ALIAS:
11791             Astro::FITS::CFITSIO::fits_write_key_fixflt = 1
11792             fitsfilePtr::write_key_fixflt = 2
11793             OUTPUT:
11794             status
11795              
11796             int
11797             ffpkyd(fptr,keyname,value,decimals,comment,status)
11798             fitsfile * fptr
11799             char * keyname
11800             double value
11801             int decimals
11802             char * comment
11803             int &status
11804             ALIAS:
11805             Astro::FITS::CFITSIO::fits_write_key_dbl = 1
11806             fitsfilePtr::write_key_dbl = 2
11807             OUTPUT:
11808             status
11809              
11810             int
11811             ffpkyg(fptr,keyname,value,decimals,comment,status)
11812             fitsfile * fptr
11813             char * keyname
11814             double value
11815             int decimals
11816             char * comment
11817             int &status
11818             ALIAS:
11819             Astro::FITS::CFITSIO::fits_write_key_fixdbl = 1
11820             fitsfilePtr::write_key_fixdbl = 2
11821             OUTPUT:
11822             status
11823              
11824             int
11825             ffpkyc(fptr,keyname,value,decimals,comment,status)
11826             fitsfile * fptr
11827             char * keyname
11828             float * value
11829             int decimals
11830             char * comment
11831             int &status
11832             ALIAS:
11833             Astro::FITS::CFITSIO::fits_write_key_cmp = 1
11834             fitsfilePtr::write_key_cmp = 2
11835             OUTPUT:
11836             status
11837              
11838             int
11839             ffpkfc(fptr,keyname,value,decimals,comment,status)
11840             fitsfile * fptr
11841             char * keyname
11842             float * value
11843             int decimals
11844             char * comment
11845             int &status
11846             ALIAS:
11847             Astro::FITS::CFITSIO::fits_write_key_fixcmp = 1
11848             fitsfilePtr::write_key_fixcmp = 2
11849             OUTPUT:
11850             status
11851              
11852             int
11853             ffpkym(fptr,keyname,value,decimals,comment,status)
11854             fitsfile * fptr
11855             char * keyname
11856             double * value
11857             int decimals
11858             char * comment
11859             int &status
11860             ALIAS:
11861             Astro::FITS::CFITSIO::fits_write_key_dblcmp = 1
11862             fitsfilePtr::write_key_dblcmp = 2
11863             OUTPUT:
11864             status
11865              
11866             int
11867             ffpkfm(fptr,keyname,value,decimals,comment,status)
11868             fitsfile * fptr
11869             char * keyname
11870             double * value
11871             int decimals
11872             char * comment
11873             int &status
11874             ALIAS:
11875             Astro::FITS::CFITSIO::fits_write_key_fixdblcmp = 1
11876             fitsfilePtr::write_key_fixdblcmp = 2
11877             OUTPUT:
11878             status
11879              
11880             int
11881             ffpkns(fptr,keyroot,nstart,nkeys,value,comment,status)
11882             fitsfile * fptr
11883             char * keyroot
11884             int nstart
11885             int nkeys
11886             char ** value
11887             char ** comment
11888             int &status
11889             ALIAS:
11890             Astro::FITS::CFITSIO::fits_write_keys_str = 1
11891             fitsfilePtr::write_keys_str = 2
11892             OUTPUT:
11893             status
11894              
11895             int
11896             ffpknl(fptr,keyroot,nstart,nkeys,value,comment,status)
11897             fitsfile * fptr
11898             char * keyroot
11899             int nstart
11900             int nkeys
11901             int * value
11902             char ** comment
11903             int &status
11904             ALIAS:
11905             Astro::FITS::CFITSIO::fits_write_keys_log = 1
11906             fitsfilePtr::write_keys_log = 2
11907             OUTPUT:
11908             status
11909              
11910             int
11911             ffpknj(fptr,keyroot,nstart,nkeys,value,comment,status)
11912             fitsfile * fptr
11913             char * keyroot
11914             int nstart
11915             int nkeys
11916             long * value
11917             char ** comment
11918             int &status
11919             ALIAS:
11920             Astro::FITS::CFITSIO::fits_write_keys_lng = 1
11921             fitsfilePtr::write_keys_lng = 2
11922             OUTPUT:
11923             status
11924              
11925             int
11926             ffpknjj(fptr,keyroot,nstart,nkeys,value,comment,status)
11927             fitsfile * fptr
11928             char * keyroot
11929             int nstart
11930             int nkeys
11931             LONGLONG * value
11932             char ** comment
11933             int &status
11934             ALIAS:
11935             Astro::FITS::CFITSIO::fits_write_keys_lnglng = 1
11936             fitsfilePtr::write_keysll = 2
11937             OUTPUT:
11938             status
11939              
11940             int
11941             ffpkne(fptr,keyroot,nstart,nkeys,value,decimals,comment,status)
11942             fitsfile * fptr
11943             char * keyroot
11944             int nstart
11945             int nkeys
11946             float * value
11947             int decimals
11948             char ** comment
11949             int &status
11950             ALIAS:
11951             Astro::FITS::CFITSIO::fits_write_keys_flt = 1
11952             fitsfilePtr::write_keys_flt = 2
11953             OUTPUT:
11954             status
11955              
11956             int
11957             ffpknf(fptr,keyroot,nstart,nkeys,value,decimals,comment,status)
11958             fitsfile * fptr
11959             char * keyroot
11960             int nstart
11961             int nkeys
11962             float * value
11963             int decimals
11964             char ** comment
11965             int &status
11966             ALIAS:
11967             Astro::FITS::CFITSIO::fits_write_keys_fixflt = 1
11968             fitsfilePtr::write_keys_fixflt = 2
11969             OUTPUT:
11970             status
11971              
11972             int
11973             ffpknd(fptr,keyroot,nstart,nkeys,value,decimals,comment,status)
11974             fitsfile * fptr
11975             char * keyroot
11976             int nstart
11977             int nkeys
11978             double * value
11979             int decimals
11980             char ** comment
11981             int &status
11982             ALIAS:
11983             Astro::FITS::CFITSIO::fits_write_keys_dbl = 1
11984             fitsfilePtr::write_keys_dbl = 2
11985             OUTPUT:
11986             status
11987              
11988             int
11989             ffpkng(fptr,keyroot,nstart,nkeys,value,decimals,comment,status)
11990             fitsfile * fptr
11991             char * keyroot
11992             int nstart
11993             int nkeys
11994             double * value
11995             int decimals
11996             char ** comment
11997             int &status
11998             ALIAS:
11999             Astro::FITS::CFITSIO::fits_write_keys_fixdbl = 1
12000             fitsfilePtr::write_keys_fixdbl = 2
12001             OUTPUT:
12002             status
12003              
12004             int
12005             ffpprn(fptr,felem,nelem,status)
12006             fitsfile * fptr
12007             LONGLONG felem
12008             LONGLONG nelem
12009             int &status
12010             ALIAS:
12011             Astro::FITS::CFITSIO::fits_write_null_img = 1
12012             fitsfilePtr::write_null_img = 2
12013             OUTPUT:
12014             status
12015              
12016             int
12017             ffprec(fptr,card,status)
12018             fitsfile * fptr
12019             char * card
12020             int &status
12021             ALIAS:
12022             Astro::FITS::CFITSIO::fits_write_record = 1
12023             fitsfilePtr::write_record = 2
12024             OUTPUT:
12025             status
12026              
12027             int
12028             ffpss(fptr, dtype, fpix, lpix, nelem, array, status)
12029             fitsfile *fptr
12030             int dtype
12031             long *fpix
12032             long *lpix
12033             SV *array
12034             int status
12035             ALIAS:
12036             Astro::FITS::CFITSIO::fits_write_subset = 1
12037             fitsfilePtr::write_subset = 2
12038             PREINIT:
12039             int storage_dtype;
12040             CODE:
12041 0           storage_dtype = dtype;
12042 0 0         if (dtype == TBIT)
12043 0           storage_dtype = TLOGICAL;
12044 0           RETVAL = ffpss(fptr,dtype,fpix,lpix,packND(array,storage_dtype),&status);
12045             OUTPUT:
12046             RETVAL
12047             status
12048              
12049             int
12050             ffpssb(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12051             fitsfile * fptr
12052             long group
12053             long naxis
12054             long * naxes
12055             long * fpixel
12056             long * lpixel
12057             byte * array
12058             int &status
12059             ALIAS:
12060             Astro::FITS::CFITSIO::fits_write_subset_byt = 1
12061             fitsfilePtr::write_subset_byt = 2
12062             OUTPUT:
12063             status
12064              
12065             int
12066             ffpsssb(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12067             fitsfile * fptr
12068             long group
12069             long naxis
12070             long * naxes
12071             long * fpixel
12072             long * lpixel
12073             signed char* array
12074             int &status
12075             ALIAS:
12076             Astro::FITS::CFITSIO::fits_write_subset_sbyt = 1
12077             fitsfilePtr::write_subset_sbyt = 2
12078             OUTPUT:
12079             status
12080              
12081             int
12082             ffpssui(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12083             fitsfile * fptr
12084             long group
12085             long naxis
12086             long * naxes
12087             long * fpixel
12088             long * lpixel
12089             unsigned short * array
12090             int &status
12091             ALIAS:
12092             Astro::FITS::CFITSIO::fits_write_subset_usht = 1
12093             fitsfilePtr::write_subset_usht = 2
12094             OUTPUT:
12095             status
12096              
12097             int
12098             ffpssi(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12099             fitsfile * fptr
12100             long group
12101             long naxis
12102             long * naxes
12103             long * fpixel
12104             long * lpixel
12105             short * array
12106             int &status
12107             ALIAS:
12108             Astro::FITS::CFITSIO::fits_write_subset_sht = 1
12109             fitsfilePtr::write_subset_sht = 2
12110             OUTPUT:
12111             status
12112              
12113             int
12114             ffpssuk(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12115             fitsfile * fptr
12116             long group
12117             long naxis
12118             long * naxes
12119             long * fpixel
12120             long * lpixel
12121             unsigned int * array
12122             int &status
12123             ALIAS:
12124             Astro::FITS::CFITSIO::fits_write_subset_uint = 1
12125             fitsfilePtr::write_subset_uint = 2
12126             OUTPUT:
12127             status
12128              
12129             int
12130             ffpssk(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12131             fitsfile * fptr
12132             long group
12133             long naxis
12134             long * naxes
12135             long * fpixel
12136             long * lpixel
12137             int * array
12138             int &status
12139             ALIAS:
12140             Astro::FITS::CFITSIO::fits_write_subset_int = 1
12141             fitsfilePtr::write_subset_int = 2
12142             OUTPUT:
12143             status
12144              
12145             int
12146             ffpssuj(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12147             fitsfile * fptr
12148             long group
12149             long naxis
12150             long * naxes
12151             long * fpixel
12152             long * lpixel
12153             unsigned long * array
12154             int &status
12155             ALIAS:
12156             Astro::FITS::CFITSIO::fits_write_subset_ulng = 1
12157             fitsfilePtr::write_subset_ulng = 2
12158             OUTPUT:
12159             status
12160              
12161             int
12162             ffpssj(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12163             fitsfile * fptr
12164             long group
12165             long naxis
12166             long * naxes
12167             long * fpixel
12168             long * lpixel
12169             long * array
12170             int &status
12171             ALIAS:
12172             Astro::FITS::CFITSIO::fits_write_subset_lng = 1
12173             fitsfilePtr::write_subset_lng = 2
12174             OUTPUT:
12175             status
12176              
12177             int
12178             ffpssjj(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12179             fitsfile * fptr
12180             long group
12181             long naxis
12182             long * naxes
12183             long * fpixel
12184             long * lpixel
12185             LONGLONG* array
12186             int &status
12187             ALIAS:
12188             Astro::FITS::CFITSIO::fits_write_subset_lnglng = 1
12189             fitsfilePtr::write_subset_lnglng = 2
12190             OUTPUT:
12191             status
12192              
12193             int
12194             ffpsse(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12195             fitsfile * fptr
12196             long group
12197             long naxis
12198             long * naxes
12199             long * fpixel
12200             long * lpixel
12201             float * array
12202             int &status
12203             ALIAS:
12204             Astro::FITS::CFITSIO::fits_write_subset_flt = 1
12205             fitsfilePtr::write_subset_flt = 2
12206             OUTPUT:
12207             status
12208              
12209             int
12210             ffpssd(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12211             fitsfile * fptr
12212             long group
12213             long naxis
12214             long * naxes
12215             long * fpixel
12216             long * lpixel
12217             double * array
12218             int &status
12219             ALIAS:
12220             Astro::FITS::CFITSIO::fits_write_subset_dbl = 1
12221             fitsfilePtr::write_subset_dbl = 2
12222             OUTPUT:
12223             status
12224              
12225             int
12226             ffptbb(fptr,frow,fchar,nchars,values,status)
12227             fitsfile * fptr
12228             LONGLONG frow
12229             LONGLONG fchar
12230             LONGLONG nchars
12231             byte * values;
12232             int &status
12233             ALIAS:
12234             Astro::FITS::CFITSIO::fits_write_tblbytes = 1
12235             fitsfilePtr::write_tblbytes = 2
12236             OUTPUT:
12237             status
12238              
12239             int
12240             ffptdm(fptr,colnum,naxis,naxes,status)
12241             fitsfile * fptr
12242             int colnum
12243             int naxis
12244             long * naxes
12245             int &status
12246             ALIAS:
12247             Astro::FITS::CFITSIO::fits_write_tdim = 1
12248             fitsfilePtr::write_tdim = 2
12249             OUTPUT:
12250             status
12251              
12252             int
12253             ffptdmll(fptr,colnum,naxis,naxes,status)
12254             fitsfile * fptr
12255             int colnum
12256             int naxis
12257             LONGLONG * naxes
12258             int &status
12259             ALIAS:
12260             Astro::FITS::CFITSIO::fits_write_tdimll = 1
12261             fitsfilePtr::write_tdimll = 2
12262             OUTPUT:
12263             status
12264              
12265             int
12266             ffpthp(fptr,theap,status)
12267             fitsfile * fptr
12268             long theap
12269             int &status
12270             ALIAS:
12271             Astro::FITS::CFITSIO::fits_write_theap = 1
12272             fitsfilePtr::write_theap = 2
12273             OUTPUT:
12274             status
12275              
12276             int
12277             ffgiwcs(fptr,header,status)
12278             fitsfile * fptr
12279             char * header = NO_INIT
12280             int status
12281              
12282             ALIAS:
12283             Astro::FITS::CFITSIO::fits_get_image_wcs_keys = 1
12284             fitsfilePtr::get_image_wcs_keys = 2
12285             CODE:
12286 0           RETVAL = ffgiwcs(fptr,&header,&status);
12287 0 0         if (status == 0) {
12288 0 0         if (ST(1) != &PL_sv_undef)
12289 0           unpackScalar(ST(1),header,TSTRING);
12290 0           fffree(header, &status);
12291             }
12292             OUTPUT:
12293             RETVAL
12294             status
12295              
12296             int
12297             ffgtwcs(fptr,xcol,ycol,header,status)
12298             fitsfile * fptr
12299             int xcol
12300             int ycol
12301             char * header = NO_INIT
12302             int status
12303             ALIAS:
12304             Astro::FITS::CFITSIO::fits_get_table_wcs_keys = 1
12305             fitsfilePtr::get_table_wcs_keys = 2
12306             CODE:
12307 0           RETVAL = ffgtwcs(fptr,xcol,ycol,&header,&status);
12308 0 0         if (status == 0) {
12309 0 0         if (ST(3)!=&PL_sv_undef)
12310 0           unpackScalar(ST(3),header,TSTRING);
12311 0           fffree(header, &status);
12312             }
12313             OUTPUT:
12314             RETVAL
12315             status
12316              
12317             int
12318             ffgipr(fptr,bitbix,naxis,naxes,status)
12319             FitsFile * fptr
12320             int bitpix = NO_INIT
12321             int naxis = NO_INIT
12322             long * naxes = NO_INIT
12323             int status
12324             ALIAS:
12325             Astro::FITS::CFITSIO::fits_get_img_parm = 1
12326             fitsfilePtr::get_img_parm = 2
12327             CODE:
12328 0 0         if (ST(3)!=&PL_sv_undef) {
12329 0           RETVAL = ffgipr(fptr->fptr,0,&bitpix,&naxis,NULL,&status);
12330 0           naxes = get_mortalspace(naxis,TLONG);
12331             }
12332             else {
12333 0           naxis = 0;
12334 0           naxes = NULL;
12335             }
12336 0           RETVAL = ffgipr(fptr->fptr,naxis,&bitpix,&naxis,naxes,&status);
12337 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),bitpix);
12338 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
12339 0 0         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONG,fptr->perlyunpacking);
12340             OUTPUT:
12341             status
12342             RETVAL
12343              
12344             int
12345             ffgiprll(fptr,bitbix,naxis,naxes,status)
12346             FitsFile * fptr
12347             int bitpix = NO_INIT
12348             int naxis = NO_INIT
12349             LONGLONG * naxes = NO_INIT
12350             int status
12351             ALIAS:
12352             Astro::FITS::CFITSIO::fits_get_img_parmll = 1
12353             fitsfilePtr::get_img_parmll = 2
12354             CODE:
12355 0 0         if (ST(3)!=&PL_sv_undef) {
12356 0           RETVAL = ffgiprll(fptr->fptr,0,&bitpix,&naxis,NULL,&status);
12357 0           naxes = get_mortalspace(naxis,TLONGLONG);
12358             }
12359             else {
12360 0           naxis = 0;
12361 0           naxes = NULL;
12362             }
12363 0           RETVAL = ffgiprll(fptr->fptr,naxis,&bitpix,&naxis,naxes,&status);
12364 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),bitpix);
12365 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
12366 0 0         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONGLONG,fptr->perlyunpacking);
12367             OUTPUT:
12368             status
12369             RETVAL
12370              
12371             int
12372             ffgkcl(card)
12373             char * card
12374             ALIAS:
12375             Astro::FITS::CFITSIO::fits_get_keyclass = 1
12376              
12377             int
12378             ffgpxv(fptr, dtype, fpix, nelem, nulval, array, anynul, status)
12379             FitsFile * fptr
12380             int dtype
12381             long * fpix
12382             LONGLONG nelem
12383             SV * nulval
12384             void * array = NO_INIT
12385             int anynul = NO_INIT
12386             int status
12387             ALIAS:
12388             Astro::FITS::CFITSIO::fits_read_pix = 1
12389             fitsfilePtr::read_pix = 2
12390             PREINIT:
12391             int naxis;
12392             long *naxes;
12393             OFF_T nelem_all;
12394             int i;
12395             CODE:
12396 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
12397 0 0         SvGROW(ST(5),nelem*sizeof_datatype(dtype));
    0          
12398 0 0         RETVAL = ffgpxv(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), (void*)SvPV(ST(5),PL_na), &anynul, &status);
    0          
12399             }
12400             else {
12401             /* find out how many elements are in the image,
12402             * allocate space, read, unpack
12403             */
12404 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
12405 0 0         if (status == 0) {
12406 0           naxes = get_mortalspace(naxis, TLONG);
12407 0           RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
12408 0           nelem_all = 1;
12409 0 0         for (i=0; i
12410 0           nelem_all *= naxes[i];
12411 0           array=get_mortalspace(nelem_all,dtype);
12412 0 0         RETVAL=ffgpxv(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), array, &anynul, &status);
12413 0 0         if (status == 0) {
12414 0           order_reverse(naxis, naxes);
12415 0           unpackND(ST(5), array, naxis, naxes, dtype, fptr->perlyunpacking);
12416             }
12417             }
12418             }
12419 0 0         if (ST(6) != &PL_sv_undef)
12420 0           sv_setiv(ST(6), anynul);
12421             OUTPUT:
12422             status
12423             RETVAL
12424              
12425             int
12426             ffgpxvll(fptr, dtype, fpix, nelem, nulval, array, anynul, status)
12427             FitsFile * fptr
12428             int dtype
12429             LONGLONG * fpix
12430             LONGLONG nelem
12431             SV * nulval
12432             void * array = NO_INIT
12433             int anynul = NO_INIT
12434             int status
12435             ALIAS:
12436             Astro::FITS::CFITSIO::fits_read_pixll = 1
12437             fitsfilePtr::read_pixll = 2
12438             PREINIT:
12439             int naxis;
12440             LONGLONG *naxes;
12441             OFF_T nelem_all;
12442             int i;
12443             CODE:
12444 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
12445 0 0         SvGROW(ST(5),nelem*sizeof_datatype(dtype));
    0          
12446 0 0         RETVAL = ffgpxvll(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), (void*)SvPV(ST(5),PL_na), &anynul, &status);
    0          
12447             }
12448             else {
12449             /* find out how many elements are in the image,
12450             * allocate space, read, unpack
12451             */
12452 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
12453 0 0         if (status == 0) {
12454 0           naxes = get_mortalspace(naxis, TLONGLONG);
12455 0           RETVAL = ffgiszll(fptr->fptr, naxis, naxes, &status);
12456 0           nelem_all = 1;
12457 0 0         for (i=0; i
12458 0           nelem_all *= naxes[i];
12459 0           array=get_mortalspace(nelem_all,dtype);
12460 0 0         RETVAL=ffgpxvll(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), array, &anynul, &status);
12461 0 0         if (status == 0) {
12462 0           order_reversell(naxis, naxes);
12463 0           unpackNDll(ST(5), array, naxis, naxes, dtype,fptr->perlyunpacking);
12464             }
12465             }
12466             }
12467 0 0         if (ST(6) != &PL_sv_undef)
12468 0           sv_setiv(ST(6), anynul);
12469             OUTPUT:
12470             status
12471             RETVAL
12472              
12473             int
12474             ffgpxf(fptr, dtype, fpix, nelem, array, nullarray, anynul, status)
12475             FitsFile * fptr
12476             int dtype
12477             long * fpix
12478             LONGLONG nelem
12479             void * array = NO_INIT
12480             logical * nullarray = NO_INIT
12481             int anynul = NO_INIT
12482             int status
12483             ALIAS:
12484             Astro::FITS::CFITSIO::fits_read_pixnull = 1
12485             fitsfilePtr::read_pixnull = 2
12486             PREINIT:
12487             int naxis;
12488             long *naxes;
12489             OFF_T nelem_all;
12490             int i;
12491             CODE:
12492 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
12493 0 0         if (ST(4) != &PL_sv_undef) {
12494 0 0         SvGROW(ST(4),nelem*sizeof_datatype(dtype));
    0          
12495 0 0         array = (void*)SvPV(ST(4),PL_na);
12496             }
12497             else
12498 0           array = get_mortalspace(nelem, dtype);
12499 0 0         if (ST(5) != &PL_sv_undef) {
12500 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
12501 0 0         nullarray = (logical*)SvPV(ST(5),PL_na);
12502             }
12503             else
12504 0           nullarray = get_mortalspace(nelem,TLOGICAL);
12505 0           RETVAL = ffgpxf(fptr->fptr,dtype,fpix,nelem,array,nullarray, &anynul,&status);
12506             }
12507             else {
12508             /* find out how many elements are in the image,
12509             * allocate space, read, unpack
12510             */
12511 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
12512 0 0         if (status == 0) {
12513 0           naxes = get_mortalspace(naxis, TLONG);
12514 0           RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
12515 0           nelem_all = 1;
12516 0 0         for (i=0; i
12517 0           nelem_all *= naxes[i];
12518 0           array=get_mortalspace(nelem_all,dtype);
12519 0           nullarray=get_mortalspace(nelem_all,TLOGICAL);
12520 0           RETVAL=ffgpxf(fptr->fptr,dtype,fpix,nelem,array,nullarray,&anynul,&status);
12521 0 0         if (status == 0) {
12522 0           order_reverse(naxis, naxes);
12523 0 0         if (ST(4)!=&PL_sv_undef)
12524 0           unpackND(ST(4),array,naxis,naxes,dtype,fptr->perlyunpacking);
12525 0 0         if (ST(5)!=&PL_sv_undef)
12526 0           unpackND(ST(5),nullarray,naxis,naxes,TLOGICAL,fptr->perlyunpacking);
12527             }
12528             }
12529             }
12530 0 0         if (ST(6) != &PL_sv_undef)
12531 0           sv_setiv(ST(6), anynul);
12532             OUTPUT:
12533             status
12534             RETVAL
12535              
12536             int
12537             ffgpxfll(fptr, dtype, fpix, nelem, array, nullarray, anynul, status)
12538             FitsFile * fptr
12539             int dtype
12540             LONGLONG * fpix
12541             LONGLONG nelem
12542             void * array = NO_INIT
12543             logical * nullarray = NO_INIT
12544             int anynul = NO_INIT
12545             int status
12546             ALIAS:
12547             Astro::FITS::CFITSIO::fits_read_pixnullll = 1
12548             fitsfilePtr::read_pixnullll = 2
12549             PREINIT:
12550             int naxis;
12551             LONGLONG *naxes;
12552             OFF_T nelem_all;
12553             int i;
12554             CODE:
12555 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
12556 0 0         if (ST(4) != &PL_sv_undef) {
12557 0 0         SvGROW(ST(4),nelem*sizeof_datatype(dtype));
    0          
12558 0 0         array = (void*)SvPV(ST(4),PL_na);
12559             }
12560             else
12561 0           array = get_mortalspace(nelem, dtype);
12562 0 0         if (ST(5) != &PL_sv_undef) {
12563 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
12564 0 0         nullarray = (logical*)SvPV(ST(5),PL_na);
12565             }
12566             else
12567 0           nullarray = get_mortalspace(nelem,TLOGICAL);
12568 0           RETVAL = ffgpxfll(fptr->fptr,dtype,fpix,nelem,array,nullarray, &anynul,&status);
12569             }
12570             else {
12571             /* find out how many elements are in the image,
12572             * allocate space, read, unpack
12573             */
12574 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
12575 0 0         if (status == 0) {
12576 0           naxes = get_mortalspace(naxis, TLONGLONG);
12577 0           RETVAL = ffgiszll(fptr->fptr, naxis, naxes, &status);
12578 0           nelem_all = 1;
12579 0 0         for (i=0; i
12580 0           nelem_all *= naxes[i];
12581 0           array=get_mortalspace(nelem_all,dtype);
12582 0           nullarray=get_mortalspace(nelem_all,TLOGICAL);
12583 0           RETVAL=ffgpxfll(fptr->fptr,dtype,fpix,nelem,array,nullarray,&anynul,&status);
12584 0 0         if (status == 0) {
12585 0           order_reversell(naxis, naxes);
12586 0 0         if (ST(4)!=&PL_sv_undef)
12587 0           unpackNDll(ST(4),array,naxis,naxes,dtype,fptr->perlyunpacking);
12588 0 0         if (ST(5)!=&PL_sv_undef)
12589 0           unpackNDll(ST(5),nullarray,naxis,naxes,TLOGICAL,fptr->perlyunpacking);
12590             }
12591             }
12592             }
12593 0 0         if (ST(6) != &PL_sv_undef)
12594 0           sv_setiv(ST(6), anynul);
12595             OUTPUT:
12596             status
12597             RETVAL
12598              
12599             int
12600             ffppx(fptr, dtype, fpix, nelem, array, status)
12601             fitsfile * fptr
12602             int dtype
12603             long * fpix
12604             LONGLONG nelem
12605             SV * array
12606             int status
12607             ALIAS:
12608             Astro::FITS::CFITSIO::fits_write_pix = 1
12609             fitsfilePtr::write_pix = 2
12610             PREINIT:
12611             int storage_dtype;
12612             CODE:
12613 0           storage_dtype = dtype;
12614 0 0         if (dtype == TBIT)
12615 0           storage_dtype = TLOGICAL;
12616 0           RETVAL = ffppx(fptr,dtype,fpix,nelem,packND(array,storage_dtype),&status);
12617             OUTPUT:
12618             RETVAL
12619             status
12620              
12621             int
12622             ffppxll(fptr, dtype, fpix, nelem, array, status)
12623             fitsfile * fptr
12624             int dtype
12625             LONGLONG * fpix
12626             LONGLONG nelem
12627             SV * array
12628             int status
12629             ALIAS:
12630             Astro::FITS::CFITSIO::fits_write_pixll = 1
12631             fitsfilePtr::write_pixll = 2
12632             PREINIT:
12633             int storage_dtype;
12634             CODE:
12635 0           storage_dtype = dtype;
12636 0 0         if (dtype == TBIT)
12637 0           storage_dtype = TLOGICAL;
12638 0           RETVAL = ffppxll(fptr,dtype,fpix,nelem,packND(array,storage_dtype),&status);
12639             OUTPUT:
12640             RETVAL
12641             status
12642              
12643             int
12644             ffppxn(fptr, dtype, fpix, nelem, array, nulval, status)
12645             fitsfile * fptr
12646             int dtype
12647             long * fpix
12648             LONGLONG nelem
12649             SV * array
12650             SV * nulval
12651             int status
12652             ALIAS:
12653             Astro::FITS::CFITSIO::fits_write_pixnull = 1
12654             fitsfilePtr::write_pixnull = 2
12655             PREINIT:
12656             int storage_dtype;
12657             CODE:
12658 0           storage_dtype = dtype;
12659 0 0         if (dtype == TBIT)
12660 0           storage_dtype = TLOGICAL;
12661 0 0         RETVAL = ffppxn(fptr,dtype,fpix,nelem,packND(array,storage_dtype),(nulval!=&PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL), &status);
12662             OUTPUT:
12663             RETVAL
12664             status
12665              
12666             int
12667             ffppxnll(fptr, dtype, fpix, nelem, array, nulval, status)
12668             fitsfile * fptr
12669             int dtype
12670             LONGLONG * fpix
12671             LONGLONG nelem
12672             SV * array
12673             SV * nulval
12674             int status
12675             ALIAS:
12676             Astro::FITS::CFITSIO::fits_write_pixnullll = 1
12677             fitsfilePtr::write_pixnullll = 2
12678             PREINIT:
12679             int storage_dtype;
12680             CODE:
12681 0           storage_dtype = dtype;
12682 0 0         if (dtype == TBIT)
12683 0           storage_dtype = TLOGICAL;
12684 0 0         RETVAL = ffppxnll(fptr,dtype,fpix,nelem,packND(array,storage_dtype),(nulval!=&PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL), &status);
12685             OUTPUT:
12686             RETVAL
12687             status
12688              
12689             int
12690             fits_copy_pixlist2image(infptr, outfptr, firstkey, naxis, colnum, status)
12691             fitsfile *infptr
12692             fitsfile *outfptr
12693             int firstkey
12694             int naxis
12695             int *colnum
12696             int &status
12697             ALIAS:
12698             fitsfilePtr::copy_pixlist2image = 1
12699             OUTPUT:
12700             status
12701              
12702             int
12703             fits_write_keys_histo(fptr, histptr, naxis, colnum, status)
12704             fitsfile *fptr
12705             fitsfile *histptr
12706             int naxis
12707             int *colnum
12708             int &status
12709             ALIAS:
12710             fitsfilePtr::write_keys_histo = 1
12711             OUTPUT:
12712             status
12713              
12714             int
12715             fits_rebin_wcs(fptr, naxis, amin, binsize, status)
12716             fitsfile *fptr
12717             int naxis
12718             float *amin
12719             float *binsize
12720             int &status
12721             ALIAS:
12722             fitsfilePtr::rebin_wcs = 1
12723             OUTPUT:
12724             status
12725              
12726             int
12727             fits_rebin_wcsd(fptr, naxis, amin, binsize, status)
12728             fitsfile *fptr
12729             int naxis
12730             double *amin
12731             double *binsize
12732             int &status
12733             ALIAS:
12734             fitsfilePtr::rebin_wcsd = 1
12735             OUTPUT:
12736             status
12737              
12738             int
12739             fits_make_hist(fptr,histptr,bitpix,naxis,naxes,colnum,amin,amax,binsize,weight,wtcolnum,recip,selectrow,status)
12740             fitsfile *fptr
12741             fitsfile *histptr
12742             int bitpix
12743             int naxis
12744             long *naxes
12745             int *colnum
12746             float *amin
12747             float *amax
12748             float *binsize
12749             float weight
12750             int wtcolnum
12751             int recip
12752             logical *selectrow
12753             int &status
12754             ALIAS:
12755             fitsfilePtr::make_hist = 1
12756             OUTPUT:
12757             status
12758              
12759             int
12760             fits_make_histd(fptr,histptr,bitpix,naxis,naxes,colnum,amin,amax,binsize,weight,wtcolnum,recip,selectrow,status)
12761             fitsfile *fptr
12762             fitsfile *histptr
12763             int bitpix
12764             int naxis
12765             long *naxes
12766             int *colnum
12767             double *amin
12768             double *amax
12769             double *binsize
12770             double weight
12771             int wtcolnum
12772             int recip
12773             logical *selectrow
12774             int &status
12775             ALIAS:
12776             fitsfilePtr::make_histd = 1
12777             OUTPUT:
12778             status
12779              
12780             int
12781             fits_make_histde(fptr,histptr,datatypes,bitpix,naxis,naxes,colnum,colexpr,amin,amax,binsize,weight,wtcolnum,wtexpr,recip,selectrow,status)
12782             fitsfile *fptr
12783             fitsfile *histptr
12784             int *datatypes
12785             int bitpix
12786             int naxis
12787             long *naxes
12788             int *colnum
12789             char **colexpr
12790             double *amin
12791             double *amax
12792             double *binsize
12793             double weight
12794             int wtcolnum
12795             char *wtexpr
12796             int recip
12797             logical *selectrow
12798             int &status
12799             ALIAS:
12800             fitsfilePtr::make_histde = 1
12801             OUTPUT:
12802             status