File Coverage

CFITSIO.xs
Criterion Covered Total %
statement 402 2523 15.9
branch 255 3196 7.9
condition n/a
subroutine n/a
pod n/a
total 657 5719 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 "fitsio.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_select_rows = 1
1674             fitsfilePtr::copy_select_rows = 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           free(header);
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           free(header);
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              
7769             int
7770             ffdstr(fptr, string, status)
7771             fitsfile * fptr
7772             char * string
7773             int &status
7774             ALIAS:
7775             Astro::FITS::CFITSIO::fits_delete_str = 1
7776             fitsfilePtr::delete_str = 2
7777             OUTPUT:
7778             status
7779              
7780             int
7781             ffgky(fptr,datatype,keyname,value,comment,status)
7782             fitsfile * fptr
7783             int datatype
7784             char * keyname
7785             void * value = NO_INIT
7786             char * comment = NO_INIT
7787             int status
7788             ALIAS:
7789             Astro::FITS::CFITSIO::fits_read_key = 1
7790             fitsfilePtr::read_key = 2
7791             CODE:
7792 8 50         comment=(ST(4)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7793 8           switch (datatype) {
7794             case TSTRING:
7795 1           value = get_mortalspace(FLEN_VALUE,TBYTE); break;
7796             case TLOGICAL:
7797 1           value = get_mortalspace(1,TINT); break;
7798             default:
7799 6           value = get_mortalspace(1,datatype);
7800             }
7801 8           RETVAL=ffgky(fptr,datatype,keyname,value,comment,&status);
7802 8 100         if (datatype == TLOGICAL)
7803 1           datatype = TINT;
7804 8           unpackScalar(ST(3),value,datatype);
7805             OUTPUT:
7806             comment
7807             status
7808             RETVAL
7809              
7810             int
7811             ffgkyt(fptr,keyname,intval,frac,comment,status)
7812             fitsfile * fptr
7813             char * keyname
7814             long intval = NO_INIT
7815             double frac = NO_INIT
7816             char * comment = NO_INIT
7817             int status
7818             ALIAS:
7819             Astro::FITS::CFITSIO::fits_read_key_triple = 1
7820             fitsfilePtr::read_key_triple = 2
7821             CODE:
7822 1 50         comment=(ST(4)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7823 1           RETVAL=ffgkyt(fptr,keyname,&intval,&frac,comment,&status);
7824 1 50         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),intval);
7825 1 50         if (ST(3) != &PL_sv_undef) sv_setnv(ST(3),frac);
7826             OUTPUT:
7827             comment
7828             status
7829             RETVAL
7830              
7831             int
7832             ffgunt(fptr,keyname,unit,status)
7833             fitsfile * fptr
7834             char * keyname
7835             char * unit = NO_INIT
7836             int status
7837             ALIAS:
7838             Astro::FITS::CFITSIO::fits_read_key_unit = 1
7839             fitsfilePtr::read_key_unit = 2
7840             CODE:
7841 3           unit = get_mortalspace(FLEN_VALUE,TBYTE);
7842 3           RETVAL=ffgunt(fptr,keyname,unit,&status);
7843             OUTPUT:
7844             unit
7845             status
7846             RETVAL
7847              
7848             int
7849             ffgkls(fptr,keyname,longstr,comment,status)
7850             fitsfile * fptr
7851             char * keyname
7852             char * longstr = NO_INIT
7853             char * comment = NO_INIT
7854             int status
7855             ALIAS:
7856             Astro::FITS::CFITSIO::fits_read_key_longstr = 1
7857             fitsfilePtr::read_key_longstr = 2
7858             CODE:
7859 1 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7860 1           RETVAL=ffgkls(fptr,keyname,&longstr,comment,&status);
7861 1           sv_setpv(ST(2),longstr);
7862 1           free(longstr);
7863             OUTPUT:
7864             comment
7865             status
7866             RETVAL
7867              
7868             int
7869             fffree(value, status)
7870             void * value
7871             int &status
7872             ALIAS:
7873             Astro::FITS::CFITSIO::fits_free_memory = 1
7874             fitsfilePtr::read_free_memory = 2
7875             OUTPUT:
7876             status
7877              
7878             int
7879             ffgkys(fptr,keyname,value,comment,status)
7880             fitsfile * fptr
7881             char * keyname
7882             char * value = NO_INIT
7883             char * comment = NO_INIT
7884             int status
7885             ALIAS:
7886             Astro::FITS::CFITSIO::fits_read_key_str = 1
7887             fitsfilePtr::read_key_str = 2
7888             CODE:
7889 2           value = get_mortalspace(FLEN_VALUE,TBYTE);
7890 2 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7891 2           RETVAL=ffgkys(fptr,keyname,value,comment,&status);
7892             OUTPUT:
7893             value
7894             comment
7895             status
7896             RETVAL
7897              
7898             int
7899             ffgkyl(fptr,keyname,value,comment,status)
7900             fitsfile * fptr
7901             char * keyname
7902             int value = NO_INIT
7903             char * comment = NO_INIT
7904             int status
7905             ALIAS:
7906             Astro::FITS::CFITSIO::fits_read_key_log = 1
7907             fitsfilePtr::read_key_log = 2
7908             CODE:
7909 1 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7910 1           RETVAL=ffgkyl(fptr,keyname,&value,comment,&status);
7911             OUTPUT:
7912             value
7913             comment
7914             status
7915             RETVAL
7916              
7917             int
7918             ffgkyj(fptr,keyname,value,comment,status)
7919             fitsfile * fptr
7920             char * keyname
7921             long value = NO_INIT
7922             char * comment = NO_INIT
7923             int status
7924             ALIAS:
7925             Astro::FITS::CFITSIO::fits_read_key_lng = 1
7926             fitsfilePtr::read_key_lng = 2
7927             CODE:
7928 1 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7929 1           RETVAL=ffgkyj(fptr,keyname,&value,comment,&status);
7930             OUTPUT:
7931             value
7932             comment
7933             status
7934             RETVAL
7935              
7936             int
7937             ffgkyjj(fptr,keyname,value,comment,status)
7938             fitsfile * fptr
7939             char * keyname
7940             LONGLONG value = NO_INIT
7941             char * comment = NO_INIT
7942             int status
7943             ALIAS:
7944             Astro::FITS::CFITSIO::fits_read_key_lnglng = 1
7945             fitsfilePtr::read_key_lnglng = 2
7946             CODE:
7947 0 0         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7948 0           RETVAL=ffgkyjj(fptr,keyname,&value,comment,&status);
7949             OUTPUT:
7950             value
7951             comment
7952             status
7953             RETVAL
7954              
7955             int
7956             ffgkye(fptr,keyname,value,comment,status)
7957             fitsfile * fptr
7958             char * keyname
7959             float value = NO_INIT
7960             char * comment = NO_INIT
7961             int status
7962             ALIAS:
7963             Astro::FITS::CFITSIO::fits_read_key_flt = 1
7964             fitsfilePtr::read_key_flt = 2
7965             CODE:
7966 1 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7967 1           RETVAL=ffgkye(fptr,keyname,&value,comment,&status);
7968             OUTPUT:
7969             value
7970             comment
7971             status
7972             RETVAL
7973              
7974             int
7975             ffgkyd(fptr,keyname,value,comment,status)
7976             fitsfile * fptr
7977             char * keyname
7978             double value = NO_INIT
7979             char * comment = NO_INIT
7980             int status
7981             ALIAS:
7982             Astro::FITS::CFITSIO::fits_read_key_dbl = 1
7983             fitsfilePtr::read_key_dbl = 2
7984             CODE:
7985 4 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
7986 4           RETVAL=ffgkyd(fptr,keyname,&value,comment,&status);
7987             OUTPUT:
7988             value
7989             comment
7990             status
7991             RETVAL
7992              
7993             int
7994             ffgkyc(fptr,keyname,value,comment,status)
7995             fitsfile * fptr
7996             char * keyname
7997             float * value = NO_INIT
7998             char * comment = NO_INIT
7999             int status
8000             ALIAS:
8001             Astro::FITS::CFITSIO::fits_read_key_cmp = 1
8002             fitsfilePtr::read_key_cmp = 2
8003             CODE:
8004 2           value = get_mortalspace(1,TCOMPLEX);
8005 2 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8006 2           RETVAL=ffgkyc(fptr,keyname,value,comment,&status);
8007 2           unpackScalar(ST(2),value,TCOMPLEX);
8008             OUTPUT:
8009             status
8010             comment
8011             RETVAL
8012              
8013             int
8014             ffgkym(fptr,keyname,value,comment,status)
8015             fitsfile * fptr
8016             char * keyname
8017             double * value = NO_INIT
8018             char * comment = NO_INIT
8019             int status
8020             ALIAS:
8021             Astro::FITS::CFITSIO::fits_read_key_dblcmp = 1
8022             fitsfilePtr::read_key_dblcmp = 2
8023             CODE:
8024 2           value = get_mortalspace(1,TDBLCOMPLEX);
8025 2 50         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8026 2           RETVAL=ffgkym(fptr,keyname,value,comment,&status);
8027 2           unpackScalar(ST(2),value,TDBLCOMPLEX);
8028             OUTPUT:
8029             comment
8030             status
8031             RETVAL
8032              
8033             int
8034             ffgkyn(fptr,keynum,keyname,value,comment,status)
8035             fitsfile * fptr
8036             int keynum
8037             char * keyname = NO_INIT
8038             char * value = NO_INIT
8039             char * comment = NO_INIT
8040             int status
8041             ALIAS:
8042             Astro::FITS::CFITSIO::fits_read_keyn = 1
8043             fitsfilePtr::read_keyn = 2
8044             CODE:
8045 1           keyname = get_mortalspace(FLEN_KEYWORD,TBYTE);
8046 1           value = get_mortalspace(FLEN_VALUE,TBYTE);
8047 1 50         comment=(ST(4)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8048 1           RETVAL=ffgkyn(fptr,keynum,keyname,value,comment,&status);
8049             OUTPUT:
8050             keyname
8051             value
8052             comment
8053             status
8054             RETVAL
8055              
8056             int
8057             ffgkns(fptr,keyname,nstart,nkeys,value,nfound,status)
8058             FitsFile * fptr
8059             char * keyname
8060             int nstart
8061             int nkeys
8062             char ** value = NO_INIT
8063             int nfound = NO_INIT
8064             int status
8065             ALIAS:
8066             Astro::FITS::CFITSIO::fits_read_keys_str = 1
8067             fitsfilePtr::read_keys_str = 2
8068             PREINIT:
8069             int i;
8070             CODE:
8071 2           value=get_mortalspace(nkeys,TSTRING);
8072 9 100         for (i=0; i
8073 7           value[i] = get_mortalspace(FLEN_VALUE,TBYTE);
8074 2           RETVAL=ffgkns(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8075 2           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TSTRING,fptr->perlyunpacking);
8076             OUTPUT:
8077             nfound
8078             status
8079             RETVAL
8080              
8081             int
8082             ffgknl(fptr,keyname,nstart,nkeys,value,nfound,status)
8083             FitsFile * fptr
8084             char * keyname
8085             int nstart
8086             int nkeys
8087             int * value = NO_INIT
8088             int nfound = NO_INIT
8089             int status
8090             ALIAS:
8091             Astro::FITS::CFITSIO::fits_read_keys_log = 1
8092             fitsfilePtr::read_keys_log = 2
8093             CODE:
8094 1           value=get_mortalspace(nkeys,TINT);
8095 1           RETVAL=ffgknl(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8096 1           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TINT,fptr->perlyunpacking);
8097             OUTPUT:
8098             nfound
8099             status
8100             RETVAL
8101              
8102             int
8103             ffgknj(fptr,keyname,nstart,nkeys,value,nfound,status)
8104             FitsFile * fptr
8105             char * keyname
8106             int nstart
8107             int nkeys
8108             long * value = NO_INIT
8109             int nfound = NO_INIT
8110             int status
8111             ALIAS:
8112             Astro::FITS::CFITSIO::fits_read_keys_lng = 1
8113             fitsfilePtr::read_keys_lng = 2
8114             CODE:
8115 1           value=get_mortalspace(nkeys,TLONG);
8116 1           RETVAL=ffgknj(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8117 1           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TLONG,fptr->perlyunpacking);
8118             OUTPUT:
8119             nfound
8120             status
8121             RETVAL
8122              
8123             int
8124             ffgknjj(fptr,keyname,nstart,nkeys,value,nfound,status)
8125             FitsFile * fptr
8126             char * keyname
8127             int nstart
8128             int nkeys
8129             LONGLONG * value = NO_INIT
8130             int nfound = NO_INIT
8131             int status
8132             ALIAS:
8133             Astro::FITS::CFITSIO::fits_read_keys_lnglng = 1
8134             fitsfilePtr::read_keys_lnglng = 2
8135             CODE:
8136 0           value=get_mortalspace(nkeys,TLONGLONG);
8137 0           RETVAL=ffgknjj(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8138 0           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TLONGLONG, fptr->perlyunpacking);
8139             OUTPUT:
8140             nfound
8141             status
8142             RETVAL
8143              
8144             int
8145             ffgkne(fptr,keyname,nstart,nkeys,value,nfound,status)
8146             FitsFile * fptr
8147             char * keyname
8148             int nstart
8149             int nkeys
8150             float * value = NO_INIT
8151             int nfound = NO_INIT
8152             int status
8153             ALIAS:
8154             Astro::FITS::CFITSIO::fits_read_keys_flt = 1
8155             fitsfilePtr::read_keys_flt = 2
8156             CODE:
8157 1           value=get_mortalspace(nkeys,TFLOAT);
8158 1           RETVAL=ffgkne(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8159 1           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TFLOAT,fptr->perlyunpacking);
8160             OUTPUT:
8161             nfound
8162             status
8163             RETVAL
8164              
8165             int
8166             ffgknd(fptr,keyname,nstart,nkeys,value,nfound,status)
8167             FitsFile * fptr
8168             char * keyname
8169             int nstart
8170             int nkeys
8171             double * value = NO_INIT
8172             int nfound = NO_INIT
8173             int status
8174             ALIAS:
8175             Astro::FITS::CFITSIO::fits_read_keys_dbl = 1
8176             fitsfilePtr::read_keys_dbl = 2
8177             CODE:
8178 1           value=get_mortalspace(nkeys,TDOUBLE);
8179 1           RETVAL=ffgknd(fptr->fptr,keyname,nstart,nkeys,value,&nfound,&status);
8180 1           unpack1D(ST(4),value,(nkeys>nfound) ? nfound : nkeys,TDOUBLE,fptr->perlyunpacking);
8181             OUTPUT:
8182             nfound
8183             status
8184             RETVAL
8185              
8186             int
8187             ffgkey(fptr,keyname,value,comment,status)
8188             fitsfile * fptr
8189             char * keyname
8190             char * value = NO_INIT
8191             char * comment = NO_INIT
8192             int status
8193             ALIAS:
8194             Astro::FITS::CFITSIO::fits_read_keyword = 1
8195             fitsfilePtr::read_keyword = 2
8196             CODE:
8197 9           value = get_mortalspace(FLEN_VALUE,TBYTE);
8198 9 100         comment=(ST(3)!=&PL_sv_undef) ? get_mortalspace(FLEN_COMMENT,TBYTE) : NULL;
8199 9           RETVAL=ffgkey(fptr,keyname,value,comment,&status);
8200             OUTPUT:
8201             value
8202             comment
8203             status
8204             RETVAL
8205              
8206             int
8207             ffgrec(fptr,keynum,card,status)
8208             fitsfile * fptr
8209             int keynum
8210             char * card = NO_INIT
8211             int status
8212             ALIAS:
8213             Astro::FITS::CFITSIO::fits_read_record = 1
8214             fitsfilePtr::read_record = 2
8215             CODE:
8216 38           card = get_mortalspace(FLEN_CARD,TBYTE);
8217 38           RETVAL=ffgrec(fptr,keynum,card,&status);
8218             OUTPUT:
8219             card
8220             status
8221             RETVAL
8222              
8223             int
8224             ffgsv(fptr, dtype, blc, trc, inc, nulval, array, anynul, status)
8225             FitsFile * fptr
8226             int dtype
8227             long * blc
8228             long * trc
8229             long * inc
8230             SV * nulval
8231             void * array = NO_INIT
8232             int anynul = NO_INIT
8233             int status
8234             ALIAS:
8235             Astro::FITS::CFITSIO::fits_read_subset = 1
8236             fitsfilePtr::read_subset = 2
8237             PREINIT:
8238             long ndata, *naxes;
8239             int i, naxis, storage_dtype;
8240             CODE:
8241 0           storage_dtype = dtype;
8242 0 0         if (dtype == TBIT)
8243 0           storage_dtype = TLOGICAL;
8244              
8245             /* get the size of the image */
8246 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
8247 0           naxes = get_mortalspace(naxis, TLONG);
8248 0           RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
8249              
8250             /* determine the number of pixels to be read */
8251 0           ndata = 1;
8252 0 0         for (i=0; i
8253 0 0         ndata *= (trc[i]-blc[i]+1)/inc[i] +
8254 0           (((trc[i]-blc[i]+1) % inc[i]) ? 1 : 0);
8255              
8256 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8257 0 0         SvGROW(ST(6),ndata*sizeof_datatype(storage_dtype));
    0          
8258 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          
8259             }
8260             else {
8261 0           array = get_mortalspace(ndata,storage_dtype);
8262 0 0         RETVAL=ffgsv(fptr->fptr,dtype,blc,trc,inc,(nulval != &PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL),array,&anynul,&status);
8263 0           unpack1D(ST(6),array,ndata,storage_dtype,fptr->perlyunpacking);
8264             }
8265 0 0         if (ST(7) != &PL_sv_undef)
8266 0           sv_setiv(ST(7),anynul);
8267             OUTPUT:
8268             RETVAL
8269             status
8270              
8271             int
8272             ffgsvb(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8273             FitsFile * fptr
8274             int group
8275             int naxis
8276             long * naxes
8277             long * fpixels
8278             long * lpixels
8279             long * inc
8280             byte nulval
8281             byte * array = NO_INIT
8282             int anynul = NO_INIT
8283             int status
8284             ALIAS:
8285             Astro::FITS::CFITSIO::fits_read_subset_byt = 1
8286             fitsfilePtr::read_subset_byt = 2
8287             PREINIT:
8288             long ndata;
8289             int i;
8290             CODE:
8291 0           ndata = 1;
8292 0 0         for (i=0; i
8293 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8294 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8295 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8296 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TBYTE));
    0          
8297 0 0         RETVAL=ffgsvb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(byte*)SvPV(ST(8),PL_na),&anynul,&status);
8298             }
8299             else {
8300 0           array = get_mortalspace(ndata,TBYTE);
8301 0           RETVAL=ffgsvb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8302 0           unpack1D(ST(8),array,ndata,TBYTE,fptr->perlyunpacking);
8303             }
8304 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8305             OUTPUT:
8306             status
8307             RETVAL
8308              
8309             int
8310             ffgsvsb(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8311             FitsFile * fptr
8312             int group
8313             int naxis
8314             long * naxes
8315             long * fpixels
8316             long * lpixels
8317             long * inc
8318             signed char nulval
8319             signed char* array = NO_INIT
8320             int anynul = NO_INIT
8321             int status
8322             ALIAS:
8323             Astro::FITS::CFITSIO::fits_read_subset_sbyt = 1
8324             fitsfilePtr::read_subset_sbyt = 2
8325             PREINIT:
8326             long ndata;
8327             int i;
8328             CODE:
8329 0           ndata = 1;
8330 0 0         for (i=0; i
8331 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8332 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8333 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8334 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TSBYTE));
    0          
8335 0 0         RETVAL=ffgsvsb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(signed char*)SvPV(ST(8),PL_na),&anynul,&status);
8336             }
8337             else {
8338 0           array = get_mortalspace(ndata,TSBYTE);
8339 0           RETVAL=ffgsvsb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8340 0           unpack1D(ST(8),array,ndata,TSBYTE,fptr->perlyunpacking);
8341             }
8342 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8343             OUTPUT:
8344             status
8345             RETVAL
8346              
8347             int
8348             ffgsvi(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8349             FitsFile * fptr
8350             int group
8351             int naxis
8352             long * naxes
8353             long * fpixels
8354             long * lpixels
8355             long * inc
8356             short nulval
8357             short * array = NO_INIT
8358             int anynul = NO_INIT
8359             int status
8360             ALIAS:
8361             Astro::FITS::CFITSIO::fits_read_subset_sht = 1
8362             fitsfilePtr::read_subset_sht = 2
8363             PREINIT:
8364             long ndata;
8365             int i;
8366             CODE:
8367 0           ndata = 1;
8368 0 0         for (i=0; i
8369 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8370 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8371 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8372 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TSHORT));
    0          
8373 0 0         RETVAL=ffgsvi(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(short*)SvPV(ST(8),PL_na),&anynul,&status);
8374             }
8375             else {
8376 0           array = get_mortalspace(ndata,TSHORT);
8377 0           RETVAL=ffgsvi(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8378 0           unpack1D(ST(8),array,ndata,TSHORT,fptr->perlyunpacking);
8379             }
8380 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8381             OUTPUT:
8382             status
8383             RETVAL
8384              
8385             int
8386             ffgsvui(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8387             FitsFile * fptr
8388             int group
8389             int naxis
8390             long * naxes
8391             long * fpixels
8392             long * lpixels
8393             long * inc
8394             unsigned short nulval
8395             unsigned short * array = NO_INIT
8396             int anynul = NO_INIT
8397             int status
8398             ALIAS:
8399             Astro::FITS::CFITSIO::fits_read_subset_usht = 1
8400             fitsfilePtr::read_subset_usht = 2
8401             PREINIT:
8402             long ndata;
8403             int i;
8404             CODE:
8405 0           ndata = 1;
8406 0 0         for (i=0; i
8407 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8408 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8409 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8410 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TUSHORT));
    0          
8411 0 0         RETVAL=ffgsvui(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(unsigned short*)SvPV(ST(8),PL_na),&anynul,&status);
8412             }
8413             else {
8414 0           array = get_mortalspace(ndata,TUSHORT);
8415 0           RETVAL=ffgsvui(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8416 0           unpack1D(ST(8),array,ndata,TUSHORT,fptr->perlyunpacking);
8417             }
8418 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8419             OUTPUT:
8420             status
8421             RETVAL
8422              
8423             int
8424             ffgsvk(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8425             FitsFile * fptr
8426             int group
8427             int naxis
8428             long * naxes
8429             long * fpixels
8430             long * lpixels
8431             long * inc
8432             int nulval
8433             int * array = NO_INIT
8434             int anynul = NO_INIT
8435             int status
8436             ALIAS:
8437             Astro::FITS::CFITSIO::fits_read_subset_int = 1
8438             fitsfilePtr::read_subset_int = 2
8439             PREINIT:
8440             long ndata;
8441             int i;
8442             CODE:
8443 0           ndata = 1;
8444 0 0         for (i=0; i
8445 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8446 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8447 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8448 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TINT));
    0          
8449 0 0         RETVAL=ffgsvk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(int*)SvPV(ST(8),PL_na),&anynul,&status);
8450             }
8451             else {
8452 0           array = get_mortalspace(ndata,TINT);
8453 0           RETVAL=ffgsvk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8454 0           unpack1D(ST(8),array,ndata,TINT,fptr->perlyunpacking);
8455             }
8456 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8457             OUTPUT:
8458             status
8459             RETVAL
8460              
8461             int
8462             ffgsvuk(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8463             FitsFile * fptr
8464             int group
8465             int naxis
8466             long * naxes
8467             long * fpixels
8468             long * lpixels
8469             long * inc
8470             unsigned int nulval
8471             unsigned int * array = NO_INIT
8472             int anynul = NO_INIT
8473             int status
8474             ALIAS:
8475             Astro::FITS::CFITSIO::fits_read_subset_uint = 1
8476             fitsfilePtr::read_subset_uint = 2
8477             PREINIT:
8478             long ndata;
8479             int i;
8480             CODE:
8481 0           ndata = 1;
8482 0 0         for (i=0; i
8483 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8484 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8485 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8486 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TUINT));
    0          
8487 0 0         RETVAL=ffgsvuk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(unsigned int*)SvPV(ST(8),PL_na),&anynul,&status);
8488             }
8489             else {
8490 0           array = get_mortalspace(ndata,TUINT);
8491 0           RETVAL=ffgsvuk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8492 0           unpack1D(ST(8),array,ndata,TUINT,fptr->perlyunpacking);
8493             }
8494 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8495             OUTPUT:
8496             status
8497             RETVAL
8498              
8499             int
8500             ffgsvj(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8501             FitsFile * fptr
8502             int group
8503             int naxis
8504             long * naxes
8505             long * fpixels
8506             long * lpixels
8507             long * inc
8508             long nulval
8509             long * array = NO_INIT
8510             int anynul = NO_INIT
8511             int status
8512             ALIAS:
8513             Astro::FITS::CFITSIO::fits_read_subset_lng = 1
8514             fitsfilePtr::read_subset_lng = 2
8515             PREINIT:
8516             long ndata;
8517             int i;
8518             CODE:
8519 0           ndata = 1;
8520 0 0         for (i=0; i
8521 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8522 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8523 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8524 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLONG));
    0          
8525 0 0         RETVAL=ffgsvj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(long*)SvPV(ST(8),PL_na),&anynul,&status);
8526             }
8527             else {
8528 0           array = get_mortalspace(ndata,TLONG);
8529 0           RETVAL=ffgsvj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8530 0           unpack1D(ST(8),array,ndata,TLONG,fptr->perlyunpacking);
8531             }
8532 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8533             OUTPUT:
8534             status
8535             RETVAL
8536              
8537             int
8538             ffgsvjj(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8539             FitsFile * fptr
8540             int group
8541             int naxis
8542             long * naxes
8543             long * fpixels
8544             long * lpixels
8545             long * inc
8546             LONGLONG nulval
8547             LONGLONG* array = NO_INIT
8548             int anynul = NO_INIT
8549             int status
8550             ALIAS:
8551             Astro::FITS::CFITSIO::fits_read_subset_lnglng = 1
8552             fitsfilePtr::read_subset_lnglng = 2
8553             PREINIT:
8554             long ndata;
8555             int i;
8556             CODE:
8557 0           ndata = 1;
8558 0 0         for (i=0; i
8559 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8560 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8561 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8562 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLONGLONG));
    0          
8563 0 0         RETVAL=ffgsvjj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(LONGLONG*)SvPV(ST(8),PL_na),&anynul,&status);
8564             }
8565             else {
8566 0           array = get_mortalspace(ndata,TLONGLONG);
8567 0           RETVAL=ffgsvjj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8568 0           unpack1D(ST(8),array,ndata,TLONGLONG,fptr->perlyunpacking);
8569             }
8570 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8571             OUTPUT:
8572             status
8573             RETVAL
8574              
8575             int
8576             ffgsvuj(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8577             FitsFile * fptr
8578             int group
8579             int naxis
8580             long * naxes
8581             long * fpixels
8582             long * lpixels
8583             long * inc
8584             unsigned long nulval
8585             unsigned long * array = NO_INIT
8586             int anynul = NO_INIT
8587             int status
8588             ALIAS:
8589             Astro::FITS::CFITSIO::fits_read_subset_ulng = 1
8590             fitsfilePtr::read_subset_ulng = 2
8591             PREINIT:
8592             long ndata;
8593             int i;
8594             CODE:
8595 0           ndata = 1;
8596 0 0         for (i=0; i
8597 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8598 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8599 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8600 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TULONG));
    0          
8601 0 0         RETVAL=ffgsvuj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(unsigned long*)SvPV(ST(8),PL_na),&anynul,&status);
8602             }
8603             else {
8604 0           array = get_mortalspace(ndata,TULONG);
8605 0           RETVAL=ffgsvuj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8606 0           unpack1D(ST(8),array,ndata,TULONG,fptr->perlyunpacking);
8607             }
8608 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8609             OUTPUT:
8610             status
8611             RETVAL
8612              
8613             int
8614             ffgsve(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8615             FitsFile * fptr
8616             int group
8617             int naxis
8618             long * naxes
8619             long * fpixels
8620             long * lpixels
8621             long * inc
8622             float nulval
8623             float * array = NO_INIT
8624             int anynul = NO_INIT
8625             int status
8626             ALIAS:
8627             Astro::FITS::CFITSIO::fits_read_subset_flt = 1
8628             fitsfilePtr::read_subset_flt = 2
8629             PREINIT:
8630             long ndata;
8631             int i;
8632             CODE:
8633 0           ndata = 1;
8634 0 0         for (i=0; i
8635 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8636 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8637 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8638 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TFLOAT));
    0          
8639 0 0         RETVAL=ffgsve(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(float*)SvPV(ST(8),PL_na),&anynul,&status);
8640             }
8641             else {
8642 0           array = get_mortalspace(ndata,TFLOAT);
8643 0           RETVAL=ffgsve(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8644 0           unpack1D(ST(8),array,ndata,TFLOAT,fptr->perlyunpacking);
8645             }
8646 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8647             OUTPUT:
8648             status
8649             RETVAL
8650              
8651             int
8652             ffgsvd(fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,anynul,status)
8653             FitsFile * fptr
8654             int group
8655             int naxis
8656             long * naxes
8657             long * fpixels
8658             long * lpixels
8659             long * inc
8660             double nulval
8661             double * array = NO_INIT
8662             int anynul = NO_INIT
8663             int status
8664             ALIAS:
8665             Astro::FITS::CFITSIO::fits_read_subset_dbl = 1
8666             fitsfilePtr::read_subset_dbl = 2
8667             PREINIT:
8668             long ndata;
8669             int i;
8670             CODE:
8671 0           ndata = 1;
8672 0 0         for (i=0; i
8673 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8674 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8675 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8676 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TDOUBLE));
    0          
8677 0 0         RETVAL=ffgsvd(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,(double*)SvPV(ST(8),PL_na),&anynul,&status);
8678             }
8679             else {
8680 0           array = get_mortalspace(ndata,TDOUBLE);
8681 0           RETVAL=ffgsvd(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,nulval,array,&anynul,&status);
8682 0           unpack1D(ST(8),array,ndata,TDOUBLE,fptr->perlyunpacking);
8683             }
8684 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8685             OUTPUT:
8686             status
8687             RETVAL
8688              
8689             int
8690             ffgsfb(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8691             FitsFile * fptr
8692             int group
8693             int naxis
8694             long * naxes
8695             long * fpixels
8696             long * lpixels
8697             long * inc
8698             byte * array = NO_INIT
8699             logical * nularr = NO_INIT
8700             int anynul = NO_INIT
8701             int status
8702             ALIAS:
8703             Astro::FITS::CFITSIO::fits_read_subsetnull_byt = 1
8704             fitsfilePtr::read_subsetnull_byt = 2
8705             PREINIT:
8706             long ndata;
8707             int i;
8708             CODE:
8709 0           ndata = 1;
8710 0 0         for (i=0; i
8711 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8712 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8713 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8714 0 0         if (ST(7) != &PL_sv_undef) {
8715 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TBYTE));
    0          
8716 0 0         array = (byte*)SvPV(ST(7),PL_na);
8717             }
8718             else
8719 0           array = get_mortalspace(ndata,TBYTE);
8720 0 0         if (ST(8) != &PL_sv_undef) {
8721 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8722 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8723             }
8724             else
8725 0           nularr = get_mortalspace(ndata,TLOGICAL);
8726 0           RETVAL=ffgsfb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8727             }
8728             else {
8729 0           array = get_mortalspace(ndata,TBYTE);
8730 0           nularr = get_mortalspace(ndata,TLOGICAL);
8731 0           RETVAL=ffgsfb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8732 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TBYTE,fptr->perlyunpacking);
8733 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8734             }
8735 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8736             OUTPUT:
8737             status
8738             RETVAL
8739              
8740             int
8741             ffgsfsb(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8742             FitsFile * fptr
8743             int group
8744             int naxis
8745             long * naxes
8746             long * fpixels
8747             long * lpixels
8748             long * inc
8749             signed char* array = NO_INIT
8750             logical * nularr = NO_INIT
8751             int anynul = NO_INIT
8752             int status
8753             ALIAS:
8754             Astro::FITS::CFITSIO::fits_read_subsetnull_sbyt = 1
8755             fitsfilePtr::read_subsetnull_sbyt = 2
8756             PREINIT:
8757             long ndata;
8758             int i;
8759             CODE:
8760 0           ndata = 1;
8761 0 0         for (i=0; i
8762 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8763 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8764 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8765 0 0         if (ST(7) != &PL_sv_undef) {
8766 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TSBYTE));
    0          
8767 0 0         array = (signed char*)SvPV(ST(7),PL_na);
8768             }
8769             else
8770 0           array = get_mortalspace(ndata,TSBYTE);
8771 0 0         if (ST(8) != &PL_sv_undef) {
8772 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8773 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8774             }
8775             else
8776 0           nularr = get_mortalspace(ndata,TLOGICAL);
8777 0           RETVAL=ffgsfsb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8778             }
8779             else {
8780 0           array = get_mortalspace(ndata,TSBYTE);
8781 0           nularr = get_mortalspace(ndata,TLOGICAL);
8782 0           RETVAL=ffgsfsb(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8783 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TSBYTE,fptr->perlyunpacking);
8784 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8785             }
8786 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8787             OUTPUT:
8788             status
8789             RETVAL
8790              
8791             int
8792             ffgsfi(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8793             FitsFile * fptr
8794             int group
8795             int naxis
8796             long * naxes
8797             long * fpixels
8798             long * lpixels
8799             long * inc
8800             short * array = NO_INIT
8801             logical * nularr = NO_INIT
8802             int anynul = NO_INIT
8803             int status
8804             ALIAS:
8805             Astro::FITS::CFITSIO::fits_read_subsetnull_sht = 1
8806             fitsfilePtr::read_subsetnull_sht = 2
8807             PREINIT:
8808             long ndata;
8809             int i;
8810             CODE:
8811 0           ndata = 1;
8812 0 0         for (i=0; i
8813 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8814 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8815 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8816 0 0         if (ST(7) != &PL_sv_undef) {
8817 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TSHORT));
    0          
8818 0 0         array = (short*)SvPV(ST(7),PL_na);
8819             }
8820             else
8821 0           array = get_mortalspace(ndata,TSHORT);
8822 0 0         if (ST(8) != &PL_sv_undef) {
8823 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8824 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8825             }
8826             else
8827 0           nularr = get_mortalspace(ndata,TLOGICAL);
8828 0           RETVAL=ffgsfi(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8829             }
8830             else {
8831 0           array = get_mortalspace(ndata,TSHORT);
8832 0           nularr = get_mortalspace(ndata,TLOGICAL);
8833 0           RETVAL=ffgsfi(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8834 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TSHORT,fptr->perlyunpacking);
8835 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8836             }
8837 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8838             OUTPUT:
8839             status
8840             RETVAL
8841              
8842             int
8843             ffgsfui(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8844             FitsFile * fptr
8845             int group
8846             int naxis
8847             long * naxes
8848             long * fpixels
8849             long * lpixels
8850             long * inc
8851             unsigned short * array = NO_INIT
8852             logical * nularr = NO_INIT
8853             int anynul = NO_INIT
8854             int status
8855             ALIAS:
8856             Astro::FITS::CFITSIO::fits_read_subsetnull_usht = 1
8857             fitsfilePtr::read_subsetnull_usht = 2
8858             PREINIT:
8859             long ndata;
8860             int i;
8861             CODE:
8862 0           ndata = 1;
8863 0 0         for (i=0; i
8864 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8865 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8866 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8867 0 0         if (ST(7) != &PL_sv_undef) {
8868 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TUSHORT));
    0          
8869 0 0         array = (unsigned short*)SvPV(ST(7),PL_na);
8870             }
8871             else
8872 0           array = get_mortalspace(ndata,TUSHORT);
8873 0 0         if (ST(8) != &PL_sv_undef) {
8874 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8875 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8876             }
8877             else
8878 0           nularr = get_mortalspace(ndata,TLOGICAL);
8879 0           RETVAL=ffgsfui(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8880             }
8881             else {
8882 0           array = get_mortalspace(ndata,TUSHORT);
8883 0           nularr = get_mortalspace(ndata,TLOGICAL);
8884 0           RETVAL=ffgsfui(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8885 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TUSHORT,fptr->perlyunpacking);
8886 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8887             }
8888 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8889             OUTPUT:
8890             status
8891             RETVAL
8892              
8893             int
8894             ffgsfk(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8895             FitsFile * fptr
8896             int group
8897             int naxis
8898             long * naxes
8899             long * fpixels
8900             long * lpixels
8901             long * inc
8902             int * array = NO_INIT
8903             logical * nularr = NO_INIT
8904             int anynul = NO_INIT
8905             int status
8906             ALIAS:
8907             Astro::FITS::CFITSIO::fits_read_subsetnull_int = 1
8908             fitsfilePtr::read_subsetnull_int = 2
8909             PREINIT:
8910             long ndata;
8911             int i;
8912             CODE:
8913 0           ndata = 1;
8914 0 0         for (i=0; i
8915 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8916 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8917 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8918 0 0         if (ST(7) != &PL_sv_undef) {
8919 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TINT));
    0          
8920 0 0         array = (int*)SvPV(ST(7),PL_na);
8921             }
8922             else
8923 0           array = get_mortalspace(ndata,TINT);
8924 0 0         if (ST(8) != &PL_sv_undef) {
8925 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8926 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8927             }
8928             else
8929 0           nularr = get_mortalspace(ndata,TLOGICAL);
8930 0           RETVAL=ffgsfk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8931             }
8932             else {
8933 0           array = get_mortalspace(ndata,TINT);
8934 0           nularr = get_mortalspace(ndata,TLOGICAL);
8935 0           RETVAL=ffgsfk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8936 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TINT,fptr->perlyunpacking);
8937 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8938             }
8939 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8940             OUTPUT:
8941             status
8942             RETVAL
8943              
8944             int
8945             ffgsfuk(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8946             FitsFile * fptr
8947             int group
8948             int naxis
8949             long * naxes
8950             long * fpixels
8951             long * lpixels
8952             long * inc
8953             unsigned int * array = NO_INIT
8954             logical * nularr = NO_INIT
8955             int anynul = NO_INIT
8956             int status
8957             ALIAS:
8958             Astro::FITS::CFITSIO::fits_read_subsetnull_uint = 1
8959             fitsfilePtr::read_subsetnull_uint = 2
8960             PREINIT:
8961             long ndata;
8962             int i;
8963             CODE:
8964 0           ndata = 1;
8965 0 0         for (i=0; i
8966 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
8967 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
8968 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
8969 0 0         if (ST(7) != &PL_sv_undef) {
8970 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TUINT));
    0          
8971 0 0         array = (unsigned int*)SvPV(ST(7),PL_na);
8972             }
8973             else
8974 0           array = get_mortalspace(ndata,TUINT);
8975 0 0         if (ST(8) != &PL_sv_undef) {
8976 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
8977 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
8978             }
8979             else
8980 0           nularr = get_mortalspace(ndata,TLOGICAL);
8981 0           RETVAL=ffgsfuk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8982             }
8983             else {
8984 0           array = get_mortalspace(ndata,TUINT);
8985 0           nularr = get_mortalspace(ndata,TLOGICAL);
8986 0           RETVAL=ffgsfuk(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
8987 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TUINT,fptr->perlyunpacking);
8988 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
8989             }
8990 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
8991             OUTPUT:
8992             status
8993             RETVAL
8994              
8995             int
8996             ffgsfj(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
8997             FitsFile * fptr
8998             int group
8999             int naxis
9000             long * naxes
9001             long * fpixels
9002             long * lpixels
9003             long * inc
9004             long * array = NO_INIT
9005             logical * nularr = NO_INIT
9006             int anynul = NO_INIT
9007             int status
9008             ALIAS:
9009             Astro::FITS::CFITSIO::fits_read_subsetnull_lng = 1
9010             fitsfilePtr::read_subsetnull_lng = 2
9011             PREINIT:
9012             long ndata;
9013             int i;
9014             CODE:
9015 0           ndata = 1;
9016 0 0         for (i=0; i
9017 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9018 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9019 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9020 0 0         if (ST(7) != &PL_sv_undef) {
9021 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TLONG));
    0          
9022 0 0         array = (long*)SvPV(ST(7),PL_na);
9023             }
9024             else
9025 0           array = get_mortalspace(ndata,TLONG);
9026 0 0         if (ST(8) != &PL_sv_undef) {
9027 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9028 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9029             }
9030             else
9031 0           nularr = get_mortalspace(ndata,TLOGICAL);
9032 0           RETVAL=ffgsfj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9033             }
9034             else {
9035 0           array = get_mortalspace(ndata,TLONG);
9036 0           nularr = get_mortalspace(ndata,TLOGICAL);
9037 0           RETVAL=ffgsfj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9038 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TLONG,fptr->perlyunpacking);
9039 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9040             }
9041 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9042             OUTPUT:
9043             status
9044             RETVAL
9045              
9046             int
9047             ffgsfjj(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9048             FitsFile * fptr
9049             int group
9050             int naxis
9051             long * naxes
9052             long * fpixels
9053             long * lpixels
9054             long * inc
9055             LONGLONG* array = NO_INIT
9056             logical * nularr = NO_INIT
9057             int anynul = NO_INIT
9058             int status
9059             ALIAS:
9060             Astro::FITS::CFITSIO::fits_read_subsetnull_lnglng = 1
9061             fitsfilePtr::read_subsetnull_lnglng = 2
9062             PREINIT:
9063             long ndata;
9064             int i;
9065             CODE:
9066 0           ndata = 1;
9067 0 0         for (i=0; i
9068 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9069 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9070 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9071 0 0         if (ST(7) != &PL_sv_undef) {
9072 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TLONGLONG));
    0          
9073 0 0         array = (LONGLONG*)SvPV(ST(7),PL_na);
9074             }
9075             else
9076 0           array = get_mortalspace(ndata,TLONGLONG);
9077 0 0         if (ST(8) != &PL_sv_undef) {
9078 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9079 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9080             }
9081             else
9082 0           nularr = get_mortalspace(ndata,TLOGICAL);
9083 0           RETVAL=ffgsfjj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9084             }
9085             else {
9086 0           array = get_mortalspace(ndata,TLONGLONG);
9087 0           nularr = get_mortalspace(ndata,TLOGICAL);
9088 0           RETVAL=ffgsfjj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9089 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TLONGLONG,fptr->perlyunpacking);
9090 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9091             }
9092 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9093             OUTPUT:
9094             status
9095             RETVAL
9096              
9097             int
9098             ffgsfuj(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9099             FitsFile * fptr
9100             int group
9101             int naxis
9102             long * naxes
9103             long * fpixels
9104             long * lpixels
9105             long * inc
9106             unsigned long * array = NO_INIT
9107             logical * nularr = NO_INIT
9108             int anynul = NO_INIT
9109             int status
9110             ALIAS:
9111             Astro::FITS::CFITSIO::fits_read_subsetnull_ulng = 1
9112             fitsfilePtr::read_subsetnull_ulng = 2
9113             PREINIT:
9114             long ndata;
9115             int i;
9116             CODE:
9117 0           ndata = 1;
9118 0 0         for (i=0; i
9119 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9120 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9121 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9122 0 0         if (ST(7) != &PL_sv_undef) {
9123 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TULONG));
    0          
9124 0 0         array = (unsigned long*)SvPV(ST(7),PL_na);
9125             }
9126             else
9127 0           array = get_mortalspace(ndata,TULONG);
9128 0 0         if (ST(8) != &PL_sv_undef) {
9129 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9130 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9131             }
9132             else
9133 0           nularr = get_mortalspace(ndata,TLOGICAL);
9134 0           RETVAL=ffgsfuj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9135             }
9136             else {
9137 0           array = get_mortalspace(ndata,TULONG);
9138 0           nularr = get_mortalspace(ndata,TLOGICAL);
9139 0           RETVAL=ffgsfuj(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9140 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TULONG,fptr->perlyunpacking);
9141 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9142             }
9143 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9144             OUTPUT:
9145             status
9146             RETVAL
9147              
9148             int
9149             ffgsfe(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9150             FitsFile * fptr
9151             int group
9152             int naxis
9153             long * naxes
9154             long * fpixels
9155             long * lpixels
9156             long * inc
9157             float * array = NO_INIT
9158             logical * nularr = NO_INIT
9159             int anynul = NO_INIT
9160             int status
9161             ALIAS:
9162             Astro::FITS::CFITSIO::fits_read_subsetnull_flt = 1
9163             fitsfilePtr::read_subsetnull_flt = 2
9164             PREINIT:
9165             long ndata;
9166             int i;
9167             CODE:
9168 0           ndata = 1;
9169 0 0         for (i=0; i
9170 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9171 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9172 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9173 0 0         if (ST(7) != &PL_sv_undef) {
9174 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TFLOAT));
    0          
9175 0 0         array = (float*)SvPV(ST(7),PL_na);
9176             }
9177             else
9178 0           array = get_mortalspace(ndata,TFLOAT);
9179 0 0         if (ST(8) != &PL_sv_undef) {
9180 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9181 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9182             }
9183             else
9184 0           nularr = get_mortalspace(ndata,TLOGICAL);
9185 0           RETVAL=ffgsfe(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9186             }
9187             else {
9188 0           array = get_mortalspace(ndata,TFLOAT);
9189 0           nularr = get_mortalspace(ndata,TLOGICAL);
9190 0           RETVAL=ffgsfe(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9191 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TFLOAT,fptr->perlyunpacking);
9192 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9193             }
9194 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9195             OUTPUT:
9196             status
9197             RETVAL
9198              
9199             int
9200             ffgsfd(fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,anynul,status)
9201             FitsFile * fptr
9202             int group
9203             int naxis
9204             long * naxes
9205             long * fpixels
9206             long * lpixels
9207             long * inc
9208             double * array = NO_INIT
9209             logical * nularr = NO_INIT
9210             int anynul = NO_INIT
9211             int status
9212             ALIAS:
9213             Astro::FITS::CFITSIO::fits_read_subsetnull_dbl = 1
9214             fitsfilePtr::read_subsetnull_dbl = 2
9215             PREINIT:
9216             long ndata;
9217             int i;
9218             CODE:
9219 0           ndata = 1;
9220 0 0         for (i=0; i
9221 0 0         ndata *= (lpixels[i]-fpixels[i]+1)/inc[i] +
9222 0           (((lpixels[i]-fpixels[i]+1) % inc[i]) ? 1 : 0);
9223 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
9224 0 0         if (ST(7) != &PL_sv_undef) {
9225 0 0         SvGROW(ST(7),ndata*sizeof_datatype(TDOUBLE));
    0          
9226 0 0         array = (double*)SvPV(ST(7),PL_na);
9227             }
9228             else
9229 0           array = get_mortalspace(ndata,TDOUBLE);
9230 0 0         if (ST(8) != &PL_sv_undef) {
9231 0 0         SvGROW(ST(8),ndata*sizeof_datatype(TLOGICAL));
    0          
9232 0 0         nularr = (logical*)SvPV(ST(8),PL_na);
9233             }
9234             else
9235 0           nularr = get_mortalspace(ndata,TLOGICAL);
9236 0           RETVAL=ffgsfd(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9237             }
9238             else {
9239 0           array = get_mortalspace(ndata,TDOUBLE);
9240 0           nularr = get_mortalspace(ndata,TLOGICAL);
9241 0           RETVAL=ffgsfd(fptr->fptr,group,naxis,naxes,fpixels,lpixels,inc,array,nularr,&anynul,&status);
9242 0 0         if (ST(7) != &PL_sv_undef) unpack1D(ST(7),array,ndata,TDOUBLE,fptr->perlyunpacking);
9243 0 0         if (ST(8) != &PL_sv_undef) unpack1D(ST(8),nularr,ndata,TLOGICAL,fptr->perlyunpacking);
9244             }
9245 0 0         if (ST(9) != &PL_sv_undef) sv_setiv(ST(9),anynul);
9246             OUTPUT:
9247             status
9248             RETVAL
9249              
9250             int
9251             ffgtcs(fptr,xcol,ycol,xrefval,yrefval,xrefpix,yrefpix,xinc,yinc,rot,coordtype,status)
9252             fitsfile * fptr
9253             int xcol
9254             int ycol
9255             double xrefval = NO_INIT
9256             double yrefval = NO_INIT
9257             double xrefpix = NO_INIT
9258             double yrefpix = NO_INIT
9259             double xinc = NO_INIT
9260             double yinc = NO_INIT
9261             double rot = NO_INIT
9262             char * coordtype = NO_INIT
9263             int status
9264             ALIAS:
9265             Astro::FITS::CFITSIO::fits_read_tbl_coord = 1
9266             fitsfilePtr::read_tbl_coord = 2
9267             CODE:
9268 0           coordtype = get_mortalspace(FLEN_VALUE,TBYTE);
9269 0           RETVAL=ffgtcs(fptr,xcol,ycol,&xrefval,&yrefval,&xrefpix,&yrefpix,&xinc,&yinc,&rot,coordtype,&status);
9270 0 0         if (ST(3) != &PL_sv_undef) sv_setnv(ST(3),xrefval); /* value-added, all around */
9271 0 0         if (ST(4) != &PL_sv_undef) sv_setnv(ST(4),yrefval);
9272 0 0         if (ST(5) != &PL_sv_undef) sv_setnv(ST(5),xrefpix);
9273 0 0         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),yrefpix);
9274 0 0         if (ST(7) != &PL_sv_undef) sv_setnv(ST(7),xinc);
9275 0 0         if (ST(8) != &PL_sv_undef) sv_setnv(ST(8),yinc);
9276 0 0         if (ST(9) != &PL_sv_undef) sv_setnv(ST(9),rot);
9277             OUTPUT:
9278             coordtype
9279             status
9280             RETVAL
9281              
9282             int
9283             ffgtbb(fptr,frow,fchar,nchars,values,status)
9284             FitsFile * fptr
9285             LONGLONG frow
9286             LONGLONG fchar
9287             LONGLONG nchars
9288             byte * values = NO_INIT
9289             int status
9290             ALIAS:
9291             Astro::FITS::CFITSIO::fits_read_tblbytes = 1
9292             fitsfilePtr::read_tblbytes = 2
9293             CODE:
9294 1 50         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    50          
9295 0 0         SvGROW(ST(4),nchars*sizeof_datatype(TBYTE));
    0          
9296 0 0         RETVAL=ffgtbb(fptr->fptr,frow,fchar,nchars,(byte*)SvPV(ST(4),PL_na),&status);
9297             }
9298             else {
9299 1           values = get_mortalspace(nchars,TBYTE);
9300 1           RETVAL=ffgtbb(fptr->fptr,frow,fchar,nchars,values,&status);
9301 1           unpack1D(ST(4),values,nchars,TBYTE,fptr->perlyunpacking);
9302             }
9303             OUTPUT:
9304             status
9305             RETVAL
9306              
9307             int
9308             ffgtdm(fptr,colnum,naxis,naxes,status)
9309             FitsFile * fptr
9310             int colnum
9311             int naxis = NO_INIT
9312             long * naxes = NO_INIT
9313             int status
9314             ALIAS:
9315             Astro::FITS::CFITSIO::fits_read_tdim = 1
9316             fitsfilePtr::read_tdim = 2
9317             CODE:
9318 1 50         if (ST(3)!=&PL_sv_undef) {
9319 1           ffgtdm(fptr->fptr,colnum,0,&naxis,NULL,&status);
9320 1           naxes = get_mortalspace(naxis,TLONG);
9321             }
9322             else {
9323 0           naxes = NULL;
9324 0           naxis = 0;
9325             }
9326 1           RETVAL=ffgtdm(fptr->fptr,colnum,naxis,&naxis,naxes,&status);
9327 1 50         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
9328 1 50         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONG,fptr->perlyunpacking);
9329             OUTPUT:
9330             status
9331             RETVAL
9332              
9333             int
9334             ffgtdmll(fptr,colnum,naxis,naxes,status)
9335             FitsFile * fptr
9336             int colnum
9337             int naxis = NO_INIT
9338             LONGLONG * naxes = NO_INIT
9339             int status
9340             ALIAS:
9341             Astro::FITS::CFITSIO::fits_read_tdimll = 1
9342             fitsfilePtr::read_tdimll = 2
9343             CODE:
9344 0 0         if (ST(3)!=&PL_sv_undef) {
9345 0           ffgtdmll(fptr->fptr,colnum,0,&naxis,NULL,&status);
9346 0           naxes = get_mortalspace(naxis,TLONGLONG);
9347             }
9348             else {
9349 0           naxes = NULL;
9350 0           naxis = 0;
9351             }
9352 0           RETVAL=ffgtdmll(fptr->fptr,colnum,naxis,&naxis,naxes,&status);
9353 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
9354 0 0         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONGLONG,fptr->perlyunpacking);
9355             OUTPUT:
9356             status
9357             RETVAL
9358              
9359             int
9360             ffgtrm(gfptr,rmopt,status)
9361             fitsfile * gfptr
9362             int rmopt
9363             int &status
9364             ALIAS:
9365             Astro::FITS::CFITSIO::fits_remove_group = 1
9366             fitsfilePtr::remove_group = 2
9367             OUTPUT:
9368             status
9369              
9370             int
9371             ffgmrm(fptr,member,rmopt,status)
9372             fitsfile * fptr
9373             long member
9374             int rmopt
9375             int &status
9376             ALIAS:
9377             Astro::FITS::CFITSIO::fits_remove_member = 1
9378             fitsfilePtr::remove_member = 2
9379             OUTPUT:
9380             status
9381              
9382             int
9383             ffreopen(openfptr,newfptr,status)
9384             fitsfile * openfptr
9385             FitsFile * newfptr = NO_INIT
9386             int status
9387             ALIAS:
9388             Astro::FITS::CFITSIO::fits_reopen_file = 1
9389             fitsfilePtr::reopen_file = 2
9390             CODE:
9391 0           NewFitsFile(newfptr);
9392 0           RETVAL = ffreopen(openfptr,&(newfptr->fptr),&status);
9393 0 0         if (RETVAL)
9394 0           AbortFitsFile(newfptr);
9395             OUTPUT:
9396             status
9397             newfptr
9398             RETVAL
9399              
9400             void
9401             ffrprt(stream, status)
9402             FILE * stream
9403             int status
9404             ALIAS:
9405             Astro::FITS::CFITSIO::fits_report_error = 1
9406              
9407             int
9408             ffrsim(fptr,bitpix,naxis,naxes,status)
9409             fitsfile * fptr
9410             int bitpix
9411             int naxis
9412             long * naxes
9413             int &status
9414             ALIAS:
9415             Astro::FITS::CFITSIO::fits_resize_img = 1
9416             fitsfilePtr::resize_img = 2
9417             OUTPUT:
9418             status
9419              
9420             int
9421             ffrsimll(fptr,bitpix,naxis,naxes,status)
9422             fitsfile * fptr
9423             int bitpix
9424             int naxis
9425             LONGLONG * naxes
9426             int &status
9427             ALIAS:
9428             Astro::FITS::CFITSIO::fits_resize_imgll = 1
9429             fitsfilePtr::resize_imgll = 2
9430             OUTPUT:
9431             status
9432              
9433             int
9434             ffsrow(infptr,outfptr,expr,status)
9435             fitsfile * infptr
9436             fitsfile * outfptr
9437             char * expr
9438             int &status
9439             ALIAS:
9440             Astro::FITS::CFITSIO::fits_select_rows = 1
9441             fitsfilePtr::select_rows = 2
9442             OUTPUT:
9443             status
9444              
9445             int
9446             ffpscl(fptr,scale,zero,status)
9447             fitsfile * fptr
9448             double scale
9449             double zero
9450             int &status
9451             ALIAS:
9452             Astro::FITS::CFITSIO::fits_set_bscale = 1
9453             fitsfilePtr::set_bscale = 2
9454             OUTPUT:
9455             status
9456              
9457             int
9458             ffsnul(fptr,colnum,nulstr,status)
9459             fitsfile * fptr
9460             int colnum
9461             char * nulstr
9462             int &status
9463             ALIAS:
9464             Astro::FITS::CFITSIO::fits_set_atblnull = 1
9465             fitsfilePtr::set_atblnull = 2
9466             OUTPUT:
9467             status
9468              
9469             int
9470             fftnul(fptr,colnum,nulval,status)
9471             fitsfile * fptr
9472             int colnum
9473             LONGLONG nulval
9474             int &status
9475             ALIAS:
9476             Astro::FITS::CFITSIO::fits_set_btblnull = 1
9477             fitsfilePtr::set_btblnull = 2
9478             OUTPUT:
9479             status
9480              
9481             int
9482             fits_set_compression_type(fptr, comptype, status)
9483             fitsfile *fptr
9484             int comptype
9485             int &status
9486             ALIAS:
9487             fitsfilePtr::set_compression_type = 1
9488             OUTPUT:
9489             status
9490              
9491             int
9492             ffhdef(fptr,morekeys,status)
9493             fitsfile * fptr
9494             int morekeys
9495             int &status
9496             ALIAS:
9497             Astro::FITS::CFITSIO::fits_set_hdrsize = 1
9498             fitsfilePtr::set_hdrsize = 2
9499             OUTPUT:
9500             status
9501              
9502             int
9503             ffrdef(fptr,status)
9504             fitsfile * fptr
9505             int &status
9506             ALIAS:
9507             Astro::FITS::CFITSIO::fits_set_hdustruc = 1
9508             fitsfilePtr::set_hdustruc = 2
9509             OUTPUT:
9510             status
9511              
9512             int
9513             ffpnul(fptr,nulval,status)
9514             fitsfile * fptr
9515             LONGLONG nulval
9516             int &status
9517             ALIAS:
9518             Astro::FITS::CFITSIO::fits_set_imgnull = 1
9519             fitsfilePtr::set_imgnull = 2
9520             OUTPUT:
9521             status
9522              
9523             int
9524             fits_set_noise_bits(fptr, noisebits, status)
9525             fitsfile *fptr
9526             int noisebits
9527             int &status
9528             ALIAS:
9529             fitsfilePtr::set_noise_bits = 1
9530             OUTPUT:
9531             status
9532              
9533             int
9534             fits_set_tile_dim(fptr, ndim, tilesize, status)
9535             fitsfile *fptr
9536             int ndim
9537             long *tilesize
9538             int &status
9539             ALIAS:
9540             fitsfilePtr::set_tile_dim = 1
9541             OUTPUT:
9542             status
9543              
9544             int
9545             fftscl(fptr,colnum,scale,zero,status)
9546             fitsfile * fptr
9547             int colnum
9548             double scale
9549             double zero
9550             int &status
9551             ALIAS:
9552             Astro::FITS::CFITSIO::fits_set_tscale = 1
9553             fitsfilePtr::set_tscale = 2
9554             OUTPUT:
9555             status
9556              
9557             int
9558             ffs2dt(datestr,year,month,day,status)
9559             char * datestr
9560             int year = NO_INIT
9561             int month = NO_INIT
9562             int day = NO_INIT
9563             int status
9564             ALIAS:
9565             Astro::FITS::CFITSIO::fits_str2date = 1
9566             CODE:
9567 0           RETVAL = ffs2dt(datestr,&year,&month,&day,&status);
9568 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),year);
9569 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),month);
9570 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),day);
9571             OUTPUT:
9572             status
9573             RETVAL
9574              
9575             int
9576             ffs2tm(datestr,year,month,day,hour,minute,second,status)
9577             char * datestr
9578             int year = NO_INIT
9579             int month = NO_INIT
9580             int day = NO_INIT
9581             int hour = NO_INIT
9582             int minute = NO_INIT
9583             double second = NO_INIT
9584             int status
9585             ALIAS:
9586             Astro::FITS::CFITSIO::fits_str2time = 1
9587             CODE:
9588 0           RETVAL = ffs2tm(datestr,&year,&month,&day,&hour,&minute,&second,&status);
9589 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),year);
9590 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),month);
9591 0 0         if (ST(3) != &PL_sv_undef) sv_setiv(ST(3),day);
9592 0 0         if (ST(4) != &PL_sv_undef) sv_setiv(ST(4),hour);
9593 0 0         if (ST(5) != &PL_sv_undef) sv_setiv(ST(5),minute);
9594 0 0         if (ST(6) != &PL_sv_undef) sv_setnv(ST(6),second);
9595             OUTPUT:
9596             status
9597             RETVAL
9598              
9599             int
9600             fftexp(fptr,expr,datatype,nelem,naxis,naxes,status)
9601             FitsFile * fptr
9602             char * expr
9603             int datatype = NO_INIT
9604             long nelem = NO_INIT
9605             int naxis = NO_INIT
9606             long * naxes = NO_INIT
9607             int status
9608             ALIAS:
9609             Astro::FITS::CFITSIO::fits_test_expr = 1
9610             fitsfilePtr::test_expr = 2
9611             CODE:
9612 0 0         if (ST(5)!=&PL_sv_undef) {
9613 0           fftexp(fptr->fptr,expr,0,&datatype,&nelem,&naxis,NULL,&status);
9614 0           naxes = get_mortalspace(naxis,TLONG);
9615             }
9616             else {
9617 0           naxes = NULL;
9618 0           naxis = 0;
9619             }
9620 0           RETVAL=fftexp(fptr->fptr,expr,naxis,&datatype,&nelem,&naxis,naxes,&status);
9621 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),datatype);
9622 0 0         if (ST(3)!=&PL_sv_undef) sv_setiv(ST(3),nelem);
9623 0 0         if (ST(4)!=&PL_sv_undef) sv_setiv(ST(4),naxis);
9624 0 0         if (ST(5)!=&PL_sv_undef) unpack1D(ST(5),naxes,naxis,TLONG,fptr->perlyunpacking);
9625             OUTPUT:
9626             status
9627             RETVAL
9628              
9629             int
9630             fftheap(fptr,heapsize,unused,overlap,validheap,status)
9631             fitsfile * fptr
9632             LONGLONG &heapsize = NO_INIT
9633             LONGLONG &unused = NO_INIT
9634             LONGLONG &overlap = NO_INIT
9635             int &validheap = NO_INIT
9636             int &status
9637             ALIAS:
9638             Astro::FITS::CFITSIO::fits_test_heap = 1
9639             fitsfilePtr::test_heap = 2
9640             OUTPUT:
9641             heapsize
9642             unused
9643             overlap
9644             validheap
9645             status
9646              
9647             int
9648             fftkey(keyname,status)
9649             char * keyname
9650             int &status
9651             ALIAS:
9652             Astro::FITS::CFITSIO::fits_test_keyword = 1
9653             OUTPUT:
9654             status
9655              
9656             int
9657             fftrec(card,status)
9658             char * card
9659             int &status
9660             ALIAS:
9661             Astro::FITS::CFITSIO::fits_test_record = 1
9662             OUTPUT:
9663             status
9664              
9665             int
9666             fftm2s(year,month,day,hr,min,sec,decimals,datestr,status)
9667             int year
9668             int month
9669             int day
9670             int hr
9671             int min
9672             double sec
9673             int decimals
9674             char * datestr = NO_INIT
9675             int status
9676             ALIAS:
9677             Astro::FITS::CFITSIO::fits_time2str = 1
9678             PREINIT:
9679             int datestrlen;
9680             CODE:
9681 0           datestrlen=21; /* YYYY-MM-DDThh:mm:ss.[ddd...] */
9682 0 0         if (decimals > 0) datestrlen += decimals;
9683 0           datestr = get_mortalspace(datestrlen,TBYTE);
9684 0           RETVAL=fftm2s(year,month,day,hr,min,sec,decimals,datestr,&status);
9685             OUTPUT:
9686             datestr
9687             status
9688             RETVAL
9689              
9690             int
9691             ffgmtf(infptr,outfptr,member,tfopt,status)
9692             fitsfile * infptr
9693             fitsfile * outfptr
9694             long member
9695             int tfopt
9696             int &status
9697             ALIAS:
9698             Astro::FITS::CFITSIO::fits_transfer_member = 1
9699             fitsfilePtr::transfer_member = 2
9700             OUTPUT:
9701             status
9702              
9703             int
9704             ffucrd(fptr,keyname,card,status)
9705             fitsfile *fptr
9706             char * keyname
9707             char * card
9708             int &status
9709             ALIAS:
9710             Astro::FITS::CFITSIO::fits_update_card = 1
9711             fitsfilePtr::update_card = 2
9712             OUTPUT:
9713             status
9714              
9715             int
9716             ffupck(fptr,status)
9717             fitsfile * fptr
9718             int &status
9719             ALIAS:
9720             Astro::FITS::CFITSIO::fits_update_chksum = 1
9721             fitsfilePtr::update_chksum = 2
9722             OUTPUT:
9723             status
9724              
9725             int
9726             ffuky(fptr,datatype,keyname,value,comm,status)
9727             fitsfile * fptr
9728             int datatype
9729             char * keyname
9730             void * value = NO_INIT
9731             char * comm
9732             int status
9733             ALIAS:
9734             Astro::FITS::CFITSIO::fits_update_key = 1
9735             fitsfilePtr::update_key = 2
9736             CODE:
9737 0 0         value = pack1D(ST(3),(datatype == TLOGICAL) ? TINT : datatype);
9738 0           RETVAL=ffuky(fptr,datatype,keyname,value,comm,&status);
9739             OUTPUT:
9740             status
9741             RETVAL
9742              
9743             int
9744             ffukyu(fptr,keyname,comment,status)
9745             fitsfile * fptr
9746             char * keyname
9747             char * comment
9748             int &status
9749             ALIAS:
9750             Astro::FITS::CFITSIO::fits_update_key_null = 1
9751             fitsfilePtr::update_key_null = 2
9752             OUTPUT:
9753             status
9754              
9755             int
9756             ffukys(fptr,keyname,value,comment,status)
9757             fitsfile * fptr
9758             char * keyname
9759             char * value
9760             char * comment
9761             int &status
9762             ALIAS:
9763             Astro::FITS::CFITSIO::fits_update_key_str = 1
9764             fitsfilePtr::update_key_str = 2
9765             OUTPUT:
9766             status
9767              
9768             int
9769             ffukyl(fptr,keyname,value,comment,status)
9770             fitsfile * fptr
9771             char * keyname
9772             int value
9773             char * comment
9774             int &status
9775             ALIAS:
9776             Astro::FITS::CFITSIO::fits_update_key_log = 1
9777             fitsfilePtr::update_key_log = 2
9778             OUTPUT:
9779             status
9780              
9781             int
9782             ffukyj(fptr,keyname,value,comment,status)
9783             fitsfile * fptr
9784             char * keyname
9785             LONGLONG value
9786             char * comment
9787             int &status
9788             ALIAS:
9789             Astro::FITS::CFITSIO::fits_update_key_lng = 1
9790             fitsfilePtr::update_key_lng = 2
9791             OUTPUT:
9792             status
9793              
9794             int
9795             ffukye(fptr,keyname,value,decimals,comment,status)
9796             fitsfile * fptr
9797             char * keyname
9798             float value
9799             int decimals
9800             char * comment
9801             int &status
9802             ALIAS:
9803             Astro::FITS::CFITSIO::fits_update_key_flt = 1
9804             fitsfilePtr::update_key_flt = 2
9805             OUTPUT:
9806             status
9807              
9808             int
9809             ffukyd(fptr,keyname,value,decimals,comment,status)
9810             fitsfile * fptr
9811             char * keyname
9812             double value
9813             int decimals
9814             char * comment
9815             int &status
9816             ALIAS:
9817             Astro::FITS::CFITSIO::fits_update_key_dbl = 1
9818             fitsfilePtr::update_key_dbl = 2
9819             OUTPUT:
9820             status
9821              
9822             int
9823             ffukyf(fptr,keyname,value,decimals,comment,status)
9824             fitsfile * fptr
9825             char * keyname
9826             float value
9827             int decimals
9828             char * comment
9829             int &status
9830             ALIAS:
9831             Astro::FITS::CFITSIO::fits_update_key_fixflt = 1
9832             fitsfilePtr::update_key_fixflt = 2
9833             OUTPUT:
9834             status
9835              
9836             int
9837             ffukyg(fptr,keyname,value,decimals,comment,status)
9838             fitsfile * fptr
9839             char * keyname
9840             double value
9841             int decimals
9842             char * comment
9843             int &status
9844             ALIAS:
9845             Astro::FITS::CFITSIO::fits_update_key_fixdbl = 1
9846             fitsfilePtr::update_key_fixdbl = 2
9847             OUTPUT:
9848             status
9849              
9850             int
9851             ffukyc(fptr,keyname,value,decimals,comment,status)
9852             fitsfile * fptr
9853             char * keyname
9854             float * value
9855             int decimals
9856             char * comment
9857             int &status
9858             ALIAS:
9859             Astro::FITS::CFITSIO::fits_update_key_cmp = 1
9860             fitsfilePtr::update_key_cmp = 2
9861             OUTPUT:
9862             status
9863              
9864             int
9865             ffukym(fptr,keyname,value,decimals,comment,status)
9866             fitsfile * fptr
9867             char * keyname
9868             double * value
9869             int decimals
9870             char * comment
9871             int &status
9872             ALIAS:
9873             Astro::FITS::CFITSIO::fits_update_key_dblcmp = 1
9874             fitsfilePtr::update_key_dblcmp = 2
9875             OUTPUT:
9876             status
9877              
9878             int
9879             ffukfc(fptr,keyname,value,decimals,comment,status)
9880             fitsfile * fptr
9881             char * keyname
9882             cmp * value
9883             int decimals
9884             char * comment
9885             int &status
9886             ALIAS:
9887             Astro::FITS::CFITSIO::fits_update_key_fixcmp = 1
9888             fitsfilePtr::update_key_fixcmp = 2
9889             OUTPUT:
9890             status
9891              
9892             int
9893             ffukfm(fptr,keyname,value,decimals,comment,status)
9894             fitsfile * fptr
9895             char * keyname
9896             dblcmp * value
9897             int decimals
9898             char * comment
9899             int &status
9900             ALIAS:
9901             Astro::FITS::CFITSIO::fits_update_key_fixdblcmp = 1
9902             fitsfilePtr::update_key_fixdblcmp = 2
9903             OUTPUT:
9904             status
9905              
9906             void
9907             ffupch(string)
9908             char * string
9909             ALIAS:
9910             Astro::FITS::CFITSIO::fits_uppercase = 1
9911             OUTPUT:
9912             string
9913              
9914             int
9915             ffurlt(fptr,urlType,status)
9916             fitsfile *fptr
9917             char *urlType = NO_INIT
9918             int status
9919             ALIAS:
9920             Astro::FITS::CFITSIO::fits_url_type = 1
9921             fitsfilePtr::url_type = 2
9922             CODE:
9923 0           urlType = get_mortalspace(FLEN_FILENAME,TBYTE);
9924 0           RETVAL = ffurlt(fptr,urlType,&status);
9925             OUTPUT:
9926             urlType
9927             status
9928             RETVAL
9929            
9930            
9931             int
9932             ffvcks(fptr,dataok,hduok,status)
9933             fitsfile * fptr
9934             int dataok = NO_INIT
9935             int hduok = NO_INIT
9936             int status
9937             ALIAS:
9938             Astro::FITS::CFITSIO::fits_verify_chksum = 1
9939             fitsfilePtr::verify_chksum = 2
9940             CODE:
9941 0           RETVAL = ffvcks(fptr,&dataok,&hduok,&status);
9942 0 0         if (ST(1) != &PL_sv_undef) sv_setiv(ST(1),dataok); /* value-added */
9943 0 0         if (ST(2) != &PL_sv_undef) sv_setiv(ST(2),hduok); /* value-added */
9944             OUTPUT:
9945             status
9946             RETVAL
9947              
9948             int
9949             ffgtvf(gfptr,firstfailed,status)
9950             fitsfile * gfptr
9951             long &firstfailed = NO_INIT
9952             int &status
9953             ALIAS:
9954             Astro::FITS::CFITSIO::fits_verify_group = 1
9955             fitsfilePtr::verify_group = 2
9956             OUTPUT:
9957             firstfailed
9958             status
9959              
9960             int
9961             ffxypx(xpos,ypos,xrefval,yrefval,xrefpix,yrefpix,xinc,yinc,rot,coordtype,xpix,ypix,status)
9962             double xpos
9963             double ypos
9964             double xrefval
9965             double yrefval
9966             double xrefpix
9967             double yrefpix
9968             double xinc
9969             double yinc
9970             double rot
9971             char * coordtype
9972             double &xpix = NO_INIT
9973             double &ypix = NO_INIT
9974             int &status
9975             ALIAS:
9976             Astro::FITS::CFITSIO::fits_world_to_pix = 1
9977             OUTPUT:
9978             xpix
9979             ypix
9980             status
9981              
9982             int
9983             ffp2db(fptr,group,dim1,naxis1,naxis2,array,status)
9984             fitsfile * fptr
9985             long group
9986             LONGLONG dim1
9987             LONGLONG naxis1
9988             LONGLONG naxis2
9989             byte * array
9990             int &status
9991             ALIAS:
9992             Astro::FITS::CFITSIO::fits_write_2d_byt = 1
9993             fitsfilePtr::write_2d_byt = 2
9994             OUTPUT:
9995             status
9996              
9997             int
9998             ffp2dsb(fptr,group,dim1,naxis1,naxis2,array,status)
9999             fitsfile * fptr
10000             long group
10001             LONGLONG dim1
10002             LONGLONG naxis1
10003             LONGLONG naxis2
10004             signed char* array
10005             int &status
10006             ALIAS:
10007             Astro::FITS::CFITSIO::fits_write_2d_sbyt = 1
10008             fitsfilePtr::write_2d_sbyt = 2
10009             OUTPUT:
10010             status
10011              
10012             int
10013             ffp2di(fptr,group,dim1,naxis1,naxis2,array,status)
10014             fitsfile * fptr
10015             long group
10016             LONGLONG dim1
10017             LONGLONG naxis1
10018             LONGLONG naxis2
10019             short * array
10020             int &status
10021             ALIAS:
10022             Astro::FITS::CFITSIO::fits_write_2d_sht = 1
10023             fitsfilePtr::write_2d_sht = 2
10024             OUTPUT:
10025             status
10026              
10027             int
10028             ffp2dui(fptr,group,dim1,naxis1,naxis2,array,status)
10029             fitsfile * fptr
10030             long group
10031             LONGLONG dim1
10032             LONGLONG naxis1
10033             LONGLONG naxis2
10034             unsigned short * array
10035             int &status
10036             ALIAS:
10037             Astro::FITS::CFITSIO::fits_write_2d_usht = 1
10038             fitsfilePtr::write_2d_usht = 2
10039             OUTPUT:
10040             status
10041              
10042             int
10043             ffp2dk(fptr,group,dim1,naxis1,naxis2,array,status)
10044             fitsfile * fptr
10045             long group
10046             LONGLONG dim1
10047             LONGLONG naxis1
10048             LONGLONG naxis2
10049             int * array
10050             int &status
10051             ALIAS:
10052             Astro::FITS::CFITSIO::fits_write_2d_int = 1
10053             fitsfilePtr::write_2d_int = 2
10054             OUTPUT:
10055             status
10056              
10057             int
10058             ffp2duk(fptr,group,dim1,naxis1,naxis2,array,status)
10059             fitsfile * fptr
10060             long group
10061             LONGLONG dim1
10062             LONGLONG naxis1
10063             LONGLONG naxis2
10064             unsigned int * array
10065             int &status
10066             ALIAS:
10067             Astro::FITS::CFITSIO::fits_write_2d_uint = 1
10068             fitsfilePtr::write_2d_uint = 2
10069             OUTPUT:
10070             status
10071              
10072             int
10073             ffp2dj(fptr,group,dim1,naxis1,naxis2,array,status)
10074             fitsfile * fptr
10075             long group
10076             LONGLONG dim1
10077             LONGLONG naxis1
10078             LONGLONG naxis2
10079             long * array
10080             int &status
10081             ALIAS:
10082             Astro::FITS::CFITSIO::fits_write_2d_lng = 1
10083             fitsfilePtr::write_2d_lng = 2
10084             OUTPUT:
10085             status
10086              
10087             int
10088             ffp2djj(fptr,group,dim1,naxis1,naxis2,array,status)
10089             fitsfile * fptr
10090             long group
10091             LONGLONG dim1
10092             LONGLONG naxis1
10093             LONGLONG naxis2
10094             LONGLONG* array
10095             int &status
10096             ALIAS:
10097             Astro::FITS::CFITSIO::fits_write_2d_lnglng = 1
10098             fitsfilePtr::write_2d_lnglng = 2
10099             OUTPUT:
10100             status
10101              
10102             int
10103             ffp2duj(fptr,group,dim1,naxis1,naxis2,array,status)
10104             fitsfile * fptr
10105             long group
10106             LONGLONG dim1
10107             LONGLONG naxis1
10108             LONGLONG naxis2
10109             unsigned long * array
10110             int &status
10111             ALIAS:
10112             Astro::FITS::CFITSIO::fits_write_2d_ulng = 1
10113             fitsfilePtr::write_2d_ulng = 2
10114             OUTPUT:
10115             status
10116              
10117             int
10118             ffp2de(fptr,group,dim1,naxis1,naxis2,array,status)
10119             fitsfile * fptr
10120             long group
10121             LONGLONG dim1
10122             LONGLONG naxis1
10123             LONGLONG naxis2
10124             float * array
10125             int &status
10126             ALIAS:
10127             Astro::FITS::CFITSIO::fits_write_2d_flt = 1
10128             fitsfilePtr::write_2d_flt = 2
10129             OUTPUT:
10130             status
10131              
10132             int
10133             ffp2dd(fptr,group,dim1,naxis1,naxis2,array,status)
10134             fitsfile * fptr
10135             long group
10136             LONGLONG dim1
10137             LONGLONG naxis1
10138             LONGLONG naxis2
10139             double * array
10140             int &status
10141             ALIAS:
10142             Astro::FITS::CFITSIO::fits_write_2d_dbl = 1
10143             fitsfilePtr::write_2d_dbl = 2
10144             OUTPUT:
10145             status
10146              
10147             int
10148             ffp3db(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10149             fitsfile * fptr
10150             long group
10151             LONGLONG dim1
10152             LONGLONG dim2
10153             LONGLONG naxis1
10154             LONGLONG naxis2
10155             LONGLONG naxis3
10156             byte * array
10157             int &status
10158             ALIAS:
10159             Astro::FITS::CFITSIO::fits_write_3d_byt = 1
10160             fitsfilePtr::write_3d_byt = 2
10161             OUTPUT:
10162             status
10163              
10164             int
10165             ffp3dsb(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10166             fitsfile * fptr
10167             long group
10168             LONGLONG dim1
10169             LONGLONG dim2
10170             LONGLONG naxis1
10171             LONGLONG naxis2
10172             LONGLONG naxis3
10173             signed char* array
10174             int &status
10175             ALIAS:
10176             Astro::FITS::CFITSIO::fits_write_3d_sbyt = 1
10177             fitsfilePtr::write_3d_sbyt = 2
10178             OUTPUT:
10179             status
10180              
10181             int
10182             ffp3di(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10183             fitsfile * fptr
10184             long group
10185             LONGLONG dim1
10186             LONGLONG dim2
10187             LONGLONG naxis1
10188             LONGLONG naxis2
10189             LONGLONG naxis3
10190             short * array
10191             int &status
10192             ALIAS:
10193             Astro::FITS::CFITSIO::fits_write_3d_sht = 1
10194             fitsfilePtr::write_3d_sht = 2
10195             OUTPUT:
10196             status
10197              
10198             int
10199             ffp3dui(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10200             fitsfile * fptr
10201             long group
10202             LONGLONG dim1
10203             LONGLONG dim2
10204             LONGLONG naxis1
10205             LONGLONG naxis2
10206             LONGLONG naxis3
10207             unsigned short * array
10208             int &status
10209             ALIAS:
10210             Astro::FITS::CFITSIO::fits_write_3d_usht = 1
10211             fitsfilePtr::write_3d_usht = 2
10212             OUTPUT:
10213             status
10214              
10215             int
10216             ffp3dk(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10217             fitsfile * fptr
10218             long group
10219             LONGLONG dim1
10220             LONGLONG dim2
10221             LONGLONG naxis1
10222             LONGLONG naxis2
10223             LONGLONG naxis3
10224             int * array
10225             int &status
10226             ALIAS:
10227             Astro::FITS::CFITSIO::fits_write_3d_int = 1
10228             fitsfilePtr::write_3d_int = 2
10229             OUTPUT:
10230             status
10231              
10232             int
10233             ffp3duk(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10234             fitsfile * fptr
10235             long group
10236             LONGLONG dim1
10237             LONGLONG dim2
10238             LONGLONG naxis1
10239             LONGLONG naxis2
10240             LONGLONG naxis3
10241             unsigned int * array
10242             int &status
10243             ALIAS:
10244             Astro::FITS::CFITSIO::fits_write_3d_uint = 1
10245             fitsfilePtr::write_3d_uint = 2
10246             OUTPUT:
10247             status
10248              
10249             int
10250             ffp3dj(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10251             fitsfile * fptr
10252             long group
10253             LONGLONG dim1
10254             LONGLONG dim2
10255             LONGLONG naxis1
10256             LONGLONG naxis2
10257             LONGLONG naxis3
10258             long * array
10259             int &status
10260             ALIAS:
10261             Astro::FITS::CFITSIO::fits_write_3d_lng = 1
10262             fitsfilePtr::write_3d_lng = 2
10263             OUTPUT:
10264             status
10265              
10266             int
10267             ffp3djj(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10268             fitsfile * fptr
10269             long group
10270             LONGLONG dim1
10271             LONGLONG dim2
10272             LONGLONG naxis1
10273             LONGLONG naxis2
10274             LONGLONG naxis3
10275             LONGLONG* array
10276             int &status
10277             ALIAS:
10278             Astro::FITS::CFITSIO::fits_write_3d_lnglng = 1
10279             fitsfilePtr::write_3d_lnglng = 2
10280             OUTPUT:
10281             status
10282              
10283             int
10284             ffp3duj(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10285             fitsfile * fptr
10286             long group
10287             LONGLONG dim1
10288             LONGLONG dim2
10289             LONGLONG naxis1
10290             LONGLONG naxis2
10291             LONGLONG naxis3
10292             unsigned long * array
10293             int &status
10294             ALIAS:
10295             Astro::FITS::CFITSIO::fits_write_3d_ulng = 1
10296             fitsfilePtr::write_3d_ulng = 2
10297             OUTPUT:
10298             status
10299              
10300             int
10301             ffp3de(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10302             fitsfile * fptr
10303             long group
10304             LONGLONG dim1
10305             LONGLONG dim2
10306             LONGLONG naxis1
10307             LONGLONG naxis2
10308             LONGLONG naxis3
10309             float * array
10310             int &status
10311             ALIAS:
10312             Astro::FITS::CFITSIO::fits_write_3d_flt = 1
10313             fitsfilePtr::write_3d_flt = 2
10314             OUTPUT:
10315             status
10316              
10317             int
10318             ffp3dd(fptr,group,dim1,dim2,naxis1,naxis2,naxis3,array,status)
10319             fitsfile * fptr
10320             long group
10321             LONGLONG dim1
10322             LONGLONG dim2
10323             LONGLONG naxis1
10324             LONGLONG naxis2
10325             LONGLONG naxis3
10326             double * array
10327             int &status
10328             ALIAS:
10329             Astro::FITS::CFITSIO::fits_write_3d_dbl = 1
10330             fitsfilePtr::write_3d_dbl = 2
10331             OUTPUT:
10332             status
10333              
10334             int
10335             ffphtb(fptr,rowlen,nrows,tfields,ttype,tbcol,tform,tunit,extname,status)
10336             fitsfile * fptr
10337             LONGLONG rowlen
10338             LONGLONG nrows
10339             int tfields
10340             char ** ttype
10341             long * tbcol
10342             char ** tform
10343             char ** tunit
10344             char * extname
10345             int &status
10346             ALIAS:
10347             Astro::FITS::CFITSIO::fits_write_atblhdr = 1
10348             fitsfilePtr::write_atblhdr = 2
10349             OUTPUT:
10350             status
10351              
10352             int
10353             ffphbn(fptr,nrows,tfields,ttype,tform,tunit,extname,pcount,status)
10354             fitsfile * fptr
10355             LONGLONG nrows
10356             int tfields
10357             char ** ttype
10358             char ** tform
10359             char ** tunit
10360             char * extname
10361             LONGLONG pcount
10362             int &status
10363             ALIAS:
10364             Astro::FITS::CFITSIO::fits_write_btblhdr = 1
10365             fitsfilePtr::write_btblhdr = 2
10366             OUTPUT:
10367             status
10368              
10369             int
10370             ffphext(fptr, xtension, bitpix, naxis, naxes, pcount, gcount, status)
10371             fitsfile * fptr
10372             char * xtension
10373             int bitpix
10374             int naxis
10375             long * naxes
10376             LONGLONG pcount
10377             LONGLONG gcount
10378             int &status
10379             ALIAS:
10380             Astro::FITS::CFITSIO::fits_write_exthdr = 1
10381             fitsfilePtr::write_exthdr = 2
10382             OUTPUT:
10383             status
10384              
10385             int
10386             ffpcks(fptr,status)
10387             fitsfile * fptr
10388             int &status
10389             ALIAS:
10390             Astro::FITS::CFITSIO::fits_write_chksum = 1
10391             fitsfilePtr::write_chksum = 2
10392             OUTPUT:
10393             status
10394              
10395             int
10396             ffprwu(fptr,firstrow,nelem,status)
10397             fitsfile * fptr
10398             LONGLONG firstrow
10399             LONGLONG nelem
10400             int &status
10401             ALIAS:
10402             Astro::FITS::CFITSIO::fits_write_nullrows = 1
10403             fitsfilePtr::write_nullrows = 2
10404             OUTPUT:
10405             status
10406              
10407             int
10408             ffpclu(fptr,colnum,frow,felem,nelem,status)
10409             fitsfile * fptr
10410             int colnum
10411             LONGLONG frow
10412             LONGLONG felem
10413             LONGLONG nelem
10414             int &status
10415             ALIAS:
10416             Astro::FITS::CFITSIO::fits_write_col_null = 1
10417             fitsfilePtr::write_col_null = 2
10418             OUTPUT:
10419             status
10420              
10421             int
10422             ffpcl(fptr,datatype,colnum,frow,felem,nelem,array,status)
10423             fitsfile * fptr
10424             int datatype
10425             int colnum
10426             LONGLONG frow
10427             LONGLONG felem
10428             LONGLONG nelem
10429             SV * array
10430             int status
10431             ALIAS:
10432             Astro::FITS::CFITSIO::fits_write_col = 1
10433             fitsfilePtr::write_col = 2
10434             PREINIT:
10435             int storage_datatype;
10436             CODE:
10437 0           storage_datatype = datatype;
10438 0 0         if (datatype == TBIT)
10439 0           storage_datatype = TLOGICAL;
10440 0           RETVAL=ffpcl(fptr,datatype,colnum,frow,felem,nelem,packND(array,storage_datatype),&status);
10441             OUTPUT:
10442             status
10443             RETVAL
10444              
10445             int
10446             ffpclx(fptr,cnum,frow,fbit,nbits,larray,status)
10447             fitsfile * fptr
10448             int cnum
10449             LONGLONG frow
10450             long fbit
10451             long nbits
10452             logical * larray
10453             int &status
10454             ALIAS:
10455             Astro::FITS::CFITSIO::fits_write_col_bit = 1
10456             fitsfilePtr::write_col_bit = 2
10457             OUTPUT:
10458             status
10459              
10460             int
10461             ffpcls(fptr,cnum,frow,felem,nelem,array,status)
10462             fitsfile * fptr
10463             int cnum
10464             LONGLONG frow
10465             LONGLONG felem
10466             LONGLONG nelem
10467             char ** array
10468             int &status
10469             ALIAS:
10470             Astro::FITS::CFITSIO::fits_write_col_str = 1
10471             fitsfilePtr::write_col_str = 2
10472             OUTPUT:
10473             status
10474              
10475             int
10476             ffpcll(fptr,cnum,frow,felem,nelem,array,status)
10477             fitsfile * fptr
10478             int cnum
10479             LONGLONG frow
10480             LONGLONG felem
10481             LONGLONG nelem
10482             logical * array
10483             int &status
10484             ALIAS:
10485             Astro::FITS::CFITSIO::fits_write_col_log = 1
10486             fitsfilePtr::write_col_log = 2
10487             OUTPUT:
10488             status
10489              
10490             int
10491             ffpclb(fptr,cnum,frow,felem,nelem,array,status)
10492             fitsfile * fptr
10493             int cnum
10494             LONGLONG frow
10495             LONGLONG felem
10496             LONGLONG nelem
10497             byte * array
10498             int &status
10499             ALIAS:
10500             Astro::FITS::CFITSIO::fits_write_col_byt = 1
10501             fitsfilePtr::write_col_byt = 2
10502             OUTPUT:
10503             status
10504              
10505             int
10506             ffpclsb(fptr,cnum,frow,felem,nelem,array,status)
10507             fitsfile * fptr
10508             int cnum
10509             LONGLONG frow
10510             LONGLONG felem
10511             LONGLONG nelem
10512             signed char* array
10513             int &status
10514             ALIAS:
10515             Astro::FITS::CFITSIO::fits_write_col_sbyt = 1
10516             fitsfilePtr::write_col_sbyt = 2
10517             OUTPUT:
10518             status
10519              
10520             int
10521             ffpclui(fptr,cnum,frow,felem,nelem,array,status)
10522             fitsfile * fptr
10523             int cnum
10524             LONGLONG frow
10525             LONGLONG felem
10526             LONGLONG nelem
10527             unsigned short * array
10528             int &status
10529             ALIAS:
10530             Astro::FITS::CFITSIO::fits_write_col_usht = 1
10531             fitsfilePtr::write_col_usht = 2
10532             OUTPUT:
10533             status
10534              
10535             int
10536             ffpcli(fptr,cnum,frow,felem,nelem,array,status)
10537             fitsfile * fptr
10538             int cnum
10539             LONGLONG frow
10540             LONGLONG felem
10541             LONGLONG nelem
10542             short * array
10543             int &status
10544             ALIAS:
10545             Astro::FITS::CFITSIO::fits_write_col_sht = 1
10546             fitsfilePtr::write_col_sht = 2
10547             OUTPUT:
10548             status
10549              
10550             int
10551             ffpcluk(fptr,cnum,frow,felem,nelem,array,status)
10552             fitsfile * fptr
10553             int cnum
10554             LONGLONG frow
10555             LONGLONG felem
10556             LONGLONG nelem
10557             unsigned int * array
10558             int &status
10559             ALIAS:
10560             Astro::FITS::CFITSIO::fits_write_col_uint = 1
10561             fitsfilePtr::write_col_uint = 2
10562             OUTPUT:
10563             status
10564              
10565             int
10566             ffpclk(fptr,cnum,frow,felem,nelem,array,status)
10567             fitsfile * fptr
10568             int cnum
10569             LONGLONG frow
10570             LONGLONG felem
10571             LONGLONG nelem
10572             int * array
10573             int &status
10574             ALIAS:
10575             Astro::FITS::CFITSIO::fits_write_col_int = 1
10576             fitsfilePtr::write_col_int = 2
10577             OUTPUT:
10578             status
10579              
10580             int
10581             ffpcluj(fptr,cnum,frow,felem,nelem,array,status)
10582             fitsfile * fptr
10583             int cnum
10584             LONGLONG frow
10585             LONGLONG felem
10586             LONGLONG nelem
10587             unsigned long * array
10588             int &status
10589             ALIAS:
10590             Astro::FITS::CFITSIO::fits_write_col_ulng = 1
10591             fitsfilePtr::write_col_ulng = 2
10592             OUTPUT:
10593             status
10594              
10595             int
10596             ffpclj(fptr,cnum,frow,felem,nelem,array,status)
10597             fitsfile * fptr
10598             int cnum
10599             LONGLONG frow
10600             LONGLONG felem
10601             LONGLONG nelem
10602             long * array
10603             int &status
10604             ALIAS:
10605             Astro::FITS::CFITSIO::fits_write_col_lng = 1
10606             fitsfilePtr::write_col_lng = 2
10607             OUTPUT:
10608             status
10609              
10610             int
10611             ffpcljj(fptr,cnum,frow,felem,nelem,array,status)
10612             fitsfile * fptr
10613             int cnum
10614             LONGLONG frow
10615             LONGLONG felem
10616             LONGLONG nelem
10617             LONGLONG* array
10618             int &status
10619             ALIAS:
10620             Astro::FITS::CFITSIO::fits_write_col_lnglng = 1
10621             fitsfilePtr::write_col_lnglng = 2
10622             OUTPUT:
10623             status
10624              
10625             int
10626             ffpcle(fptr,cnum,frow,felem,nelem,array,status)
10627             fitsfile * fptr
10628             int cnum
10629             LONGLONG frow
10630             LONGLONG felem
10631             LONGLONG nelem
10632             float * array
10633             int &status
10634             ALIAS:
10635             Astro::FITS::CFITSIO::fits_write_col_flt = 1
10636             fitsfilePtr::write_col_flt = 2
10637             OUTPUT:
10638             status
10639              
10640             int
10641             ffpcld(fptr,cnum,frow,felem,nelem,array,status)
10642             fitsfile * fptr
10643             int cnum
10644             LONGLONG frow
10645             LONGLONG felem
10646             LONGLONG nelem
10647             double * array
10648             int &status
10649             ALIAS:
10650             Astro::FITS::CFITSIO::fits_write_col_dbl = 1
10651             fitsfilePtr::write_col_dbl = 2
10652             OUTPUT:
10653             status
10654              
10655             int
10656             ffpclc(fptr,cnum,frow,felem,nelem,array,status)
10657             fitsfile * fptr
10658             int cnum
10659             LONGLONG frow
10660             LONGLONG felem
10661             LONGLONG nelem
10662             float * array
10663             int &status
10664             ALIAS:
10665             Astro::FITS::CFITSIO::fits_write_col_cmp = 1
10666             fitsfilePtr::write_col_cmp = 2
10667             OUTPUT:
10668             status
10669              
10670             int
10671             ffpclm(fptr,cnum,frow,felem,nelem,array,status)
10672             fitsfile * fptr
10673             int cnum
10674             LONGLONG frow
10675             LONGLONG felem
10676             LONGLONG nelem
10677             double * array
10678             int &status
10679             ALIAS:
10680             Astro::FITS::CFITSIO::fits_write_col_dblcmp = 1
10681             fitsfilePtr::write_col_dblcmp = 2
10682             OUTPUT:
10683             status
10684              
10685             int
10686             ffpcn(fptr,datatype,colnum,frow,felem,nelem,array,nulval,status)
10687             fitsfile * fptr
10688             int datatype
10689             int colnum
10690             LONGLONG frow
10691             LONGLONG felem
10692             LONGLONG nelem
10693             SV * array
10694             SV * nulval
10695             int status
10696             ALIAS:
10697             Astro::FITS::CFITSIO::fits_write_colnull = 1
10698             fitsfilePtr::write_colnull = 2
10699             PREINIT:
10700             int storage_datatype;
10701             CODE:
10702 0           storage_datatype = datatype;
10703 0 0         if (datatype == TBIT)
10704 0           storage_datatype = TLOGICAL;
10705 0 0         RETVAL=ffpcn(
10706             fptr,
10707             datatype,
10708             colnum,
10709             frow, felem, nelem,
10710             packND(array,storage_datatype),
10711             (nulval!=&PL_sv_undef) ? pack1D(nulval, storage_datatype) : NULL,
10712             &status);
10713             OUTPUT:
10714             status
10715             RETVAL
10716              
10717             int
10718             ffpcns(fptr,cnum,frow,felem,nelem,array,nulstr,status)
10719             fitsfile * fptr
10720             int cnum
10721             LONGLONG frow
10722             LONGLONG felem
10723             LONGLONG nelem
10724             char ** array
10725             char * nulstr
10726             int &status
10727             ALIAS:
10728             Astro::FITS::CFITSIO::fits_write_colnull_str = 1
10729             fitsfilePtr::write_colnull_str = 2
10730             OUTPUT:
10731             status
10732              
10733             int
10734             ffpcnl(fptr,cnum,frow,felem,nelem,array,nulval,status)
10735             fitsfile * fptr
10736             int cnum
10737             LONGLONG frow
10738             LONGLONG felem
10739             LONGLONG nelem
10740             logical * array
10741             logical nulval
10742             int &status
10743             ALIAS:
10744             Astro::FITS::CFITSIO::fits_write_colnull_log = 1
10745             fitsfilePtr::write_colnull_log = 2
10746             OUTPUT:
10747             status
10748              
10749             int
10750             ffpcnb(fptr,cnum,frow,felem,nelem,array,nulval,status)
10751             fitsfile * fptr
10752             int cnum
10753             LONGLONG frow
10754             LONGLONG felem
10755             LONGLONG nelem
10756             byte * array
10757             byte nulval
10758             int &status
10759             ALIAS:
10760             Astro::FITS::CFITSIO::fits_write_colnull_byt = 1
10761             fitsfilePtr::write_colnull_byt = 2
10762             OUTPUT:
10763             status
10764              
10765             int
10766             ffpcnsb(fptr,cnum,frow,felem,nelem,array,nulval,status)
10767             fitsfile * fptr
10768             int cnum
10769             LONGLONG frow
10770             LONGLONG felem
10771             LONGLONG nelem
10772             signed char* array
10773             signed char nulval
10774             int &status
10775             ALIAS:
10776             Astro::FITS::CFITSIO::fits_write_colnull_sbyt = 1
10777             fitsfilePtr::write_colnull_sbyt = 2
10778             OUTPUT:
10779             status
10780              
10781             int
10782             ffpcnui(fptr,cnum,frow,felem,nelem,array,nulval,status)
10783             fitsfile * fptr
10784             int cnum
10785             LONGLONG frow
10786             LONGLONG felem
10787             LONGLONG nelem
10788             unsigned short * array
10789             unsigned short nulval
10790             int &status
10791             ALIAS:
10792             Astro::FITS::CFITSIO::fits_write_colnull_usht = 1
10793             fitsfilePtr::write_colnull_usht = 2
10794             OUTPUT:
10795             status
10796              
10797             int
10798             ffpcni(fptr,cnum,frow,felem,nelem,array,nulval,status)
10799             fitsfile * fptr
10800             int cnum
10801             LONGLONG frow
10802             LONGLONG felem
10803             LONGLONG nelem
10804             short * array
10805             short nulval
10806             int &status
10807             ALIAS:
10808             Astro::FITS::CFITSIO::fits_write_colnull_sht = 1
10809             fitsfilePtr::write_colnull_sht = 2
10810             OUTPUT:
10811             status
10812              
10813             int
10814             ffpcnuk(fptr,cnum,frow,felem,nelem,array,nulval,status)
10815             fitsfile * fptr
10816             int cnum
10817             LONGLONG frow
10818             LONGLONG felem
10819             LONGLONG nelem
10820             unsigned int * array
10821             unsigned int nulval
10822             int &status
10823             ALIAS:
10824             Astro::FITS::CFITSIO::fits_write_colnull_uint = 1
10825             fitsfilePtr::write_colnull_uint = 2
10826             OUTPUT:
10827             status
10828              
10829             int
10830             ffpcnk(fptr,cnum,frow,felem,nelem,array,nulval,status)
10831             fitsfile * fptr
10832             int cnum
10833             LONGLONG frow
10834             LONGLONG felem
10835             LONGLONG nelem
10836             int * array
10837             int nulval
10838             int &status
10839             ALIAS:
10840             Astro::FITS::CFITSIO::fits_write_colnull_int = 1
10841             fitsfilePtr::write_colnull_int = 2
10842             OUTPUT:
10843             status
10844              
10845             int
10846             ffpcnuj(fptr,cnum,frow,felem,nelem,array,nulval,status)
10847             fitsfile * fptr
10848             int cnum
10849             LONGLONG frow
10850             LONGLONG felem
10851             LONGLONG nelem
10852             unsigned long * array
10853             unsigned long nulval
10854             int &status
10855             ALIAS:
10856             Astro::FITS::CFITSIO::fits_write_colnull_ulng = 1
10857             fitsfilePtr::write_colnull_ulng = 2
10858             OUTPUT:
10859             status
10860              
10861             int
10862             ffpcnj(fptr,cnum,frow,felem,nelem,array,nulval,status)
10863             fitsfile * fptr
10864             int cnum
10865             LONGLONG frow
10866             LONGLONG felem
10867             LONGLONG nelem
10868             long * array
10869             long nulval
10870             int &status
10871             ALIAS:
10872             Astro::FITS::CFITSIO::fits_write_colnull_lng = 1
10873             fitsfilePtr::write_colnull_lng = 2
10874             OUTPUT:
10875             status
10876              
10877             int
10878             ffpcnjj(fptr,cnum,frow,felem,nelem,array,nulval,status)
10879             fitsfile * fptr
10880             int cnum
10881             LONGLONG frow
10882             LONGLONG felem
10883             LONGLONG nelem
10884             LONGLONG* array
10885             LONGLONG nulval
10886             int &status
10887             ALIAS:
10888             Astro::FITS::CFITSIO::fits_write_colnull_lnglng = 1
10889             fitsfilePtr::write_colnull_lnglng = 2
10890             OUTPUT:
10891             status
10892              
10893             int
10894             ffpcne(fptr,cnum,frow,felem,nelem,array,nulval,status)
10895             fitsfile * fptr
10896             int cnum
10897             LONGLONG frow
10898             LONGLONG felem
10899             LONGLONG nelem
10900             float * array
10901             float nulval
10902             int &status
10903             ALIAS:
10904             Astro::FITS::CFITSIO::fits_write_colnull_flt = 1
10905             fitsfilePtr::write_colnull_flt = 2
10906             OUTPUT:
10907             status
10908              
10909             int
10910             ffpcnd(fptr,cnum,frow,felem,nelem,array,nulval,status)
10911             fitsfile * fptr
10912             int cnum
10913             LONGLONG frow
10914             LONGLONG felem
10915             LONGLONG nelem
10916             double * array
10917             double nulval
10918             int &status
10919             ALIAS:
10920             Astro::FITS::CFITSIO::fits_write_colnull_dbl = 1
10921             fitsfilePtr::write_colnull_dbl = 2
10922             OUTPUT:
10923             status
10924              
10925             int
10926             ffpcom(fptr,comment,status)
10927             fitsfile * fptr
10928             char * comment
10929             int &status
10930             ALIAS:
10931             Astro::FITS::CFITSIO::fits_write_comment = 1
10932             fitsfilePtr::write_comment = 2
10933             OUTPUT:
10934             status
10935              
10936             int
10937             ffpdat(fptr,status)
10938             fitsfile * fptr
10939             int &status
10940             ALIAS:
10941             Astro::FITS::CFITSIO::fits_write_date = 1
10942             fitsfilePtr::write_date = 2
10943             OUTPUT:
10944             status
10945              
10946             int
10947             ffpdes(fptr,colnum,rownum,repeat,offset,status)
10948             fitsfile * fptr
10949             int colnum
10950             LONGLONG rownum
10951             LONGLONG repeat
10952             LONGLONG offset
10953             int &status
10954             ALIAS:
10955             Astro::FITS::CFITSIO::fits_write_descript = 1
10956             fitsfilePtr::write_descript = 2
10957             OUTPUT:
10958             status
10959              
10960             void
10961             ffpmsg(err_msg)
10962             char * err_msg
10963             ALIAS:
10964             Astro::FITS::CFITSIO::fits_write_errmsg = 1
10965              
10966             int
10967             ffpgpb(fptr,group,felem,nelem,array,status)
10968             fitsfile * fptr
10969             long group
10970             long felem
10971             long nelem
10972             byte * array
10973             int &status
10974             ALIAS:
10975             Astro::FITS::CFITSIO::fits_write_grppar_byt = 1
10976             fitsfilePtr::write_grppar_byt = 2
10977             OUTPUT:
10978             status
10979              
10980             int
10981             ffpgpsb(fptr,group,felem,nelem,array,status)
10982             fitsfile * fptr
10983             long group
10984             long felem
10985             long nelem
10986             signed char* array
10987             int &status
10988             ALIAS:
10989             Astro::FITS::CFITSIO::fits_write_grppar_sbyt = 1
10990             fitsfilePtr::write_grppar_sbyt = 2
10991             OUTPUT:
10992             status
10993              
10994             int
10995             ffpgpui(fptr,group,felem,nelem,array,status)
10996             fitsfile * fptr
10997             long group
10998             long felem
10999             long nelem
11000             unsigned short * array
11001             int &status
11002             ALIAS:
11003             Astro::FITS::CFITSIO::fits_write_grppar_usht = 1
11004             fitsfilePtr::write_grppar_usht = 2
11005             OUTPUT:
11006             status
11007              
11008             int
11009             ffpgpi(fptr,group,felem,nelem,array,status)
11010             fitsfile * fptr
11011             long group
11012             long felem
11013             long nelem
11014             short * array
11015             int &status
11016             ALIAS:
11017             Astro::FITS::CFITSIO::fits_write_grppar_sht = 1
11018             fitsfilePtr::write_grppar_sht = 2
11019             OUTPUT:
11020             status
11021              
11022             int
11023             ffpgpuk(fptr,group,felem,nelem,array,status)
11024             fitsfile * fptr
11025             long group
11026             long felem
11027             long nelem
11028             unsigned int * array
11029             int &status
11030             ALIAS:
11031             Astro::FITS::CFITSIO::fits_write_grppar_uint = 1
11032             fitsfilePtr::write_grppar_uint = 2
11033             OUTPUT:
11034             status
11035              
11036             int
11037             ffpgpk(fptr,group,felem,nelem,array,status)
11038             fitsfile * fptr
11039             long group
11040             long felem
11041             long nelem
11042             int * array
11043             int &status
11044             ALIAS:
11045             Astro::FITS::CFITSIO::fits_write_grppar_int = 1
11046             fitsfilePtr::write_grppar_int = 2
11047             OUTPUT:
11048             status
11049              
11050             int
11051             ffpgpuj(fptr,group,felem,nelem,array,status)
11052             fitsfile * fptr
11053             long group
11054             long felem
11055             long nelem
11056             unsigned long * array
11057             int &status
11058             ALIAS:
11059             Astro::FITS::CFITSIO::fits_write_grppar_ulng = 1
11060             fitsfilePtr::write_grppar_ulng = 2
11061             OUTPUT:
11062             status
11063              
11064             int
11065             ffpgpj(fptr,group,felem,nelem,array,status)
11066             fitsfile * fptr
11067             long group
11068             long felem
11069             long nelem
11070             long * array
11071             int &status
11072             ALIAS:
11073             Astro::FITS::CFITSIO::fits_write_grppar_lng = 1
11074             fitsfilePtr::write_grppar_lng = 2
11075             OUTPUT:
11076             status
11077              
11078             int
11079             ffpgpjj(fptr,group,felem,nelem,array,status)
11080             fitsfile * fptr
11081             long group
11082             long felem
11083             long nelem
11084             LONGLONG* array
11085             int &status
11086             ALIAS:
11087             Astro::FITS::CFITSIO::fits_write_grppar_lnglng = 1
11088             fitsfilePtr::write_grppar_lnglng = 2
11089             OUTPUT:
11090             status
11091              
11092             int
11093             ffpgpe(fptr,group,felem,nelem,array,status)
11094             fitsfile * fptr
11095             long group
11096             long felem
11097             long nelem
11098             float * array
11099             int &status
11100             ALIAS:
11101             Astro::FITS::CFITSIO::fits_write_grppar_flt = 1
11102             fitsfilePtr::write_grppar_flt = 2
11103             OUTPUT:
11104             status
11105              
11106             int
11107             ffpgpd(fptr,group,felem,nelem,array,status)
11108             fitsfile * fptr
11109             long group
11110             long felem
11111             long nelem
11112             double * array
11113             int &status
11114             ALIAS:
11115             Astro::FITS::CFITSIO::fits_write_grppar_dbl = 1
11116             fitsfilePtr::write_grppar_dbl = 2
11117             OUTPUT:
11118             status
11119              
11120             int
11121             ffphis(fptr,history,status)
11122             fitsfile * fptr
11123             char * history
11124             int &status
11125             ALIAS:
11126             Astro::FITS::CFITSIO::fits_write_history = 1
11127             fitsfilePtr::write_history = 2
11128             OUTPUT:
11129             status
11130              
11131             int
11132             ffppr(fptr,datatype,firstelem,nelem,array,status)
11133             fitsfile * fptr
11134             int datatype
11135             LONGLONG firstelem
11136             LONGLONG nelem
11137             SV * array
11138             int status
11139             ALIAS:
11140             Astro::FITS::CFITSIO::fits_write_img = 1
11141             fitsfilePtr::write_img = 2
11142             CODE:
11143 0           RETVAL=ffppr(fptr,datatype,firstelem,nelem,packND(array,datatype),&status);
11144             OUTPUT:
11145             status
11146             RETVAL
11147              
11148             int
11149             ffppru(fptr,group,felem,nelem,status)
11150             fitsfile * fptr
11151             long group
11152             LONGLONG felem
11153             LONGLONG nelem
11154             int &status
11155             ALIAS:
11156             Astro::FITS::CFITSIO::fits_write_img_null = 1
11157             fitsfilePtr::write_img_null = 2
11158             OUTPUT:
11159             status
11160              
11161             int
11162             ffpprb(fptr,group,felem,nelem,array,status)
11163             fitsfile * fptr
11164             long group
11165             LONGLONG nelem
11166             LONGLONG felem
11167             byte * array
11168             int &status
11169             ALIAS:
11170             Astro::FITS::CFITSIO::fits_write_img_byt = 1
11171             fitsfilePtr::write_img_byt = 2
11172             OUTPUT:
11173             status
11174              
11175             int
11176             ffpprsb(fptr,group,felem,nelem,array,status)
11177             fitsfile * fptr
11178             long group
11179             LONGLONG nelem
11180             LONGLONG felem
11181             signed char* array
11182             int &status
11183             ALIAS:
11184             Astro::FITS::CFITSIO::fits_write_img_sbyt = 1
11185             fitsfilePtr::write_img_sbyt = 2
11186             OUTPUT:
11187             status
11188              
11189             int
11190             ffpprui(fptr,group,felem,nelem,array,status)
11191             fitsfile * fptr
11192             long group
11193             LONGLONG nelem
11194             LONGLONG felem
11195             unsigned short * array
11196             int &status
11197             ALIAS:
11198             Astro::FITS::CFITSIO::fits_write_img_usht = 1
11199             fitsfilePtr::write_img_usht = 2
11200             OUTPUT:
11201             status
11202              
11203             int
11204             ffppri(fptr,group,felem,nelem,array,status)
11205             fitsfile * fptr
11206             long group
11207             LONGLONG nelem
11208             LONGLONG felem
11209             short * array
11210             int &status
11211             ALIAS:
11212             Astro::FITS::CFITSIO::fits_write_img_sht = 1
11213             fitsfilePtr::write_img_sht = 2
11214             OUTPUT:
11215             status
11216              
11217             int
11218             ffppruk(fptr,group,felem,nelem,array,status)
11219             fitsfile * fptr
11220             long group
11221             LONGLONG nelem
11222             LONGLONG felem
11223             unsigned int * array
11224             int &status
11225             ALIAS:
11226             Astro::FITS::CFITSIO::fits_write_img_uint = 1
11227             fitsfilePtr::write_img_uint = 2
11228             OUTPUT:
11229             status
11230              
11231             int
11232             ffpprk(fptr,group,felem,nelem,array,status)
11233             fitsfile * fptr
11234             long group
11235             LONGLONG nelem
11236             LONGLONG felem
11237             int * array
11238             int &status
11239             ALIAS:
11240             Astro::FITS::CFITSIO::fits_write_img_int = 1
11241             fitsfilePtr::write_img_int = 2
11242             OUTPUT:
11243             status
11244              
11245             int
11246             ffppruj(fptr,group,felem,nelem,array,status)
11247             fitsfile * fptr
11248             long group
11249             LONGLONG nelem
11250             LONGLONG felem
11251             unsigned long * array
11252             int &status
11253             ALIAS:
11254             Astro::FITS::CFITSIO::fits_write_img_ulng = 1
11255             fitsfilePtr::write_img_ulng = 2
11256             OUTPUT:
11257             status
11258              
11259             int
11260             ffpprj(fptr,group,felem,nelem,array,status)
11261             fitsfile * fptr
11262             long group
11263             LONGLONG nelem
11264             LONGLONG felem
11265             long * array
11266             int &status
11267             ALIAS:
11268             Astro::FITS::CFITSIO::fits_write_img_lng = 1
11269             fitsfilePtr::write_img_lng = 2
11270             OUTPUT:
11271             status
11272              
11273             int
11274             ffpprjj(fptr,group,felem,nelem,array,status)
11275             fitsfile * fptr
11276             long group
11277             LONGLONG nelem
11278             LONGLONG felem
11279             LONGLONG* array
11280             int &status
11281             ALIAS:
11282             Astro::FITS::CFITSIO::fits_write_img_lnglng = 1
11283             fitsfilePtr::write_img_lnglng = 2
11284             OUTPUT:
11285             status
11286              
11287             int
11288             ffppre(fptr,group,felem,nelem,array,status)
11289             fitsfile * fptr
11290             long group
11291             LONGLONG nelem
11292             LONGLONG felem
11293             float * array
11294             int &status
11295             ALIAS:
11296             Astro::FITS::CFITSIO::fits_write_img_flt = 1
11297             fitsfilePtr::write_img_flt = 2
11298             OUTPUT:
11299             status
11300              
11301             int
11302             ffpprd(fptr,group,felem,nelem,array,status)
11303             fitsfile * fptr
11304             long group
11305             LONGLONG nelem
11306             LONGLONG felem
11307             double * array
11308             int &status
11309             ALIAS:
11310             Astro::FITS::CFITSIO::fits_write_img_dbl = 1
11311             fitsfilePtr::write_img_dbl = 2
11312             OUTPUT:
11313             status
11314              
11315             int
11316             ffphps(fptr,bitpix,naxis,naxes,status)
11317             fitsfile * fptr
11318             int bitpix
11319             int naxis
11320             long * naxes
11321             int &status
11322             ALIAS:
11323             Astro::FITS::CFITSIO::fits_write_imghdr = 1
11324             fitsfilePtr::write_imghdr = 2
11325             OUTPUT:
11326             status
11327              
11328             int
11329             ffphpsll(fptr,bitpix,naxis,naxes,status)
11330             fitsfile * fptr
11331             int bitpix
11332             int naxis
11333             LONGLONG * naxes
11334             int &status
11335             ALIAS:
11336             Astro::FITS::CFITSIO::fits_write_imghdrll = 1
11337             fitsfilePtr::write_imghdrll = 2
11338             OUTPUT:
11339             status
11340              
11341             int
11342             ffphpr(fptr,simple,bitpix,naxis,naxes,pcount,gcount,extend,status)
11343             fitsfile * fptr
11344             int simple
11345             int bitpix
11346             int naxis
11347             long * naxes
11348             LONGLONG pcount
11349             LONGLONG gcount
11350             int extend
11351             int &status
11352             ALIAS:
11353             Astro::FITS::CFITSIO::fits_write_grphdr = 1
11354             fitsfilePtr::write_grphdr = 2
11355             OUTPUT:
11356             status
11357              
11358             int
11359             ffphprll(fptr,simple,bitpix,naxis,naxes,pcount,gcount,extend,status)
11360             fitsfile * fptr
11361             int simple
11362             int bitpix
11363             int naxis
11364             LONGLONG* naxes
11365             LONGLONG pcount
11366             LONGLONG gcount
11367             int extend
11368             int &status
11369             ALIAS:
11370             Astro::FITS::CFITSIO::fits_write_grphdrll = 1
11371             fitsfilePtr::write_grphdrll = 2
11372             OUTPUT:
11373             status
11374              
11375             int
11376             ffppn(fptr,datatype,felem,nelem,array,nulval,status)
11377             fitsfile * fptr
11378             int datatype
11379             LONGLONG felem
11380             LONGLONG nelem
11381             SV * array
11382             SV * nulval
11383             int status
11384             ALIAS:
11385             Astro::FITS::CFITSIO::fits_write_imgnull = 1
11386             fitsfilePtr::write_imgnull = 2
11387             CODE:
11388 0           RETVAL=ffppn(fptr,datatype,felem,nelem,packND(array,datatype),pack1D(nulval,datatype),&status);
11389             OUTPUT:
11390             status
11391             RETVAL
11392              
11393             int
11394             ffppnb(fptr,group,felem,nelem,array,nulval,status)
11395             fitsfile * fptr
11396             long group
11397             LONGLONG felem
11398             LONGLONG nelem
11399             byte * array
11400             byte nulval
11401             int &status
11402             ALIAS:
11403             Astro::FITS::CFITSIO::fits_write_imgnull_byt = 1
11404             fitsfilePtr::write_imgnull_byt = 2
11405             OUTPUT:
11406             status
11407              
11408             int
11409             ffppnsb(fptr,group,felem,nelem,array,nulval,status)
11410             fitsfile * fptr
11411             long group
11412             LONGLONG felem
11413             LONGLONG nelem
11414             signed char* array
11415             signed char nulval
11416             int &status
11417             ALIAS:
11418             Astro::FITS::CFITSIO::fits_write_imgnull_sbyt = 1
11419             fitsfilePtr::write_imgnull_sbyt = 2
11420             OUTPUT:
11421             status
11422              
11423             int
11424             ffppnui(fptr,group,felem,nelem,array,nulval,status)
11425             fitsfile * fptr
11426             long group
11427             LONGLONG felem
11428             LONGLONG nelem
11429             unsigned short * array
11430             unsigned short nulval
11431             int &status
11432             ALIAS:
11433             Astro::FITS::CFITSIO::fits_write_imgnull_usht = 1
11434             fitsfilePtr::write_imgnull_usht = 2
11435             OUTPUT:
11436             status
11437              
11438             int
11439             ffppni(fptr,group,felem,nelem,array,nulval,status)
11440             fitsfile * fptr
11441             long group
11442             LONGLONG felem
11443             LONGLONG nelem
11444             short * array
11445             short nulval
11446             int &status
11447             ALIAS:
11448             Astro::FITS::CFITSIO::fits_write_imgnull_sht = 1
11449             fitsfilePtr::write_imgnull_sht = 2
11450             OUTPUT:
11451             status
11452              
11453             int
11454             ffppnuk(fptr,group,felem,nelem,array,nulval,status)
11455             fitsfile * fptr
11456             long group
11457             LONGLONG felem
11458             LONGLONG nelem
11459             unsigned int * array
11460             unsigned int nulval
11461             int &status
11462             ALIAS:
11463             Astro::FITS::CFITSIO::fits_write_imgnull_uint = 1
11464             fitsfilePtr::write_imgnull_uint = 2
11465             OUTPUT:
11466             status
11467              
11468             int
11469             ffppnk(fptr,group,felem,nelem,array,nulval,status)
11470             fitsfile * fptr
11471             long group
11472             LONGLONG felem
11473             LONGLONG nelem
11474             int * array
11475             int nulval
11476             int &status
11477             ALIAS:
11478             Astro::FITS::CFITSIO::fits_write_imgnull_int = 1
11479             fitsfilePtr::write_imgnull_int = 2
11480             OUTPUT:
11481             status
11482              
11483             int
11484             ffppnuj(fptr,group,felem,nelem,array,nulval,status)
11485             fitsfile * fptr
11486             long group
11487             LONGLONG felem
11488             LONGLONG nelem
11489             unsigned long * array
11490             unsigned long nulval
11491             int &status
11492             ALIAS:
11493             Astro::FITS::CFITSIO::fits_write_imgnull_ulng = 1
11494             fitsfilePtr::write_imgnull_ulng = 2
11495             OUTPUT:
11496             status
11497              
11498             int
11499             ffppnj(fptr,group,felem,nelem,array,nulval,status)
11500             fitsfile * fptr
11501             long group
11502             LONGLONG felem
11503             LONGLONG nelem
11504             long * array
11505             long nulval
11506             int &status
11507             ALIAS:
11508             Astro::FITS::CFITSIO::fits_write_imgnull_lng = 1
11509             fitsfilePtr::write_imgnull_lng = 2
11510             OUTPUT:
11511             status
11512              
11513             int
11514             ffppnjj(fptr,group,felem,nelem,array,nulval,status)
11515             fitsfile * fptr
11516             long group
11517             LONGLONG felem
11518             LONGLONG nelem
11519             LONGLONG* array
11520             LONGLONG nulval
11521             int &status
11522             ALIAS:
11523             Astro::FITS::CFITSIO::fits_write_imgnull_lnglng = 1
11524             fitsfilePtr::write_imgnull_lnglng = 2
11525             OUTPUT:
11526             status
11527              
11528             int
11529             ffppne(fptr,group,felem,nelem,array,nulval,status)
11530             fitsfile * fptr
11531             long group
11532             LONGLONG felem
11533             LONGLONG nelem
11534             float * array
11535             float nulval
11536             int &status
11537             ALIAS:
11538             Astro::FITS::CFITSIO::fits_write_imgnull_flt = 1
11539             fitsfilePtr::write_imgnull_flt = 2
11540             OUTPUT:
11541             status
11542              
11543             int
11544             ffppnd(fptr,group,felem,nelem,array,nulval,status)
11545             fitsfile * fptr
11546             long group
11547             LONGLONG felem
11548             LONGLONG nelem
11549             double * array
11550             double nulval
11551             int &status
11552             ALIAS:
11553             Astro::FITS::CFITSIO::fits_write_imgnull_dbl = 1
11554             fitsfilePtr::write_imgnull_dbl = 2
11555             OUTPUT:
11556             status
11557              
11558             int
11559             ffpky(fptr,datatype,keyname,value,comment,status)
11560             fitsfile * fptr
11561             int datatype
11562             char * keyname
11563             void * value = NO_INIT
11564             char * comment
11565             int status
11566             ALIAS:
11567             Astro::FITS::CFITSIO::fits_write_key = 1
11568             fitsfilePtr::write_key = 2
11569             CODE:
11570 8 100         value = pack1D(ST(3),(datatype == TLOGICAL) ? TINT : datatype);
11571 8           RETVAL=ffpky(fptr,datatype,keyname,value,comment,&status);
11572             OUTPUT:
11573             status
11574             RETVAL
11575              
11576             int
11577             ffpkls(fptr,keyname,longstr,comment,status)
11578             fitsfile * fptr
11579             char * keyname
11580             char * longstr
11581             char * comment
11582             int &status
11583             ALIAS:
11584             Astro::FITS::CFITSIO::fits_write_key_longstr = 1
11585             fitsfilePtr::write_key_longstr = 2
11586             OUTPUT:
11587             status
11588              
11589             int
11590             ffukls(fptr,keynam,value,comm,status)
11591             fitsfile * fptr
11592             char * keynam
11593             char * value
11594             char * comm
11595             int &status
11596             ALIAS:
11597             Astro::FITS::CFITSIO::fits_update_key_longstr = 1
11598             fitsfilePtr::update_key_longstr = 2
11599             OUTPUT:
11600             status
11601              
11602             int
11603             ffikls(fptr,keynam,value,comm,status)
11604             fitsfile * fptr
11605             char * keynam
11606             char * value
11607             char * comm
11608             int &status
11609             ALIAS:
11610             Astro::FITS::CFITSIO::fits_insert_key_longstr = 1
11611             fitsfilePtr::insert_key_longstr = 2
11612             OUTPUT:
11613             status
11614              
11615             int
11616             ffmkls(fptr,keynam,value,comm,status)
11617             fitsfile * fptr
11618             char * keynam
11619             char * value
11620             char * comm
11621             int &status
11622             ALIAS:
11623             Astro::FITS::CFITSIO::fits_modify_key_longstr = 1
11624             fitsfilePtr::modify_key_longstr = 2
11625             OUTPUT:
11626             status
11627              
11628             int
11629             ffplsw(fptr,status)
11630             fitsfile * fptr
11631             int &status
11632             ALIAS:
11633             Astro::FITS::CFITSIO::fits_write_key_longwarn = 1
11634             fitsfilePtr::write_key_longwarn = 2
11635             OUTPUT:
11636             status
11637              
11638             int
11639             ffpkyu(fptr,keyname,comment,status)
11640             fitsfile * fptr
11641             char * keyname
11642             char * comment
11643             int &status
11644             ALIAS:
11645             Astro::FITS::CFITSIO::fits_write_key_null = 1
11646             fitsfilePtr::write_key_null = 2
11647             OUTPUT:
11648             status
11649              
11650             int
11651             ffpktp(fptr,filename,status)
11652             fitsfile * fptr
11653             char * filename
11654             int &status
11655             ALIAS:
11656             Astro::FITS::CFITSIO::fits_write_key_template = 1
11657             fitsfilePtr::write_key_template = 2
11658             OUTPUT:
11659             status
11660              
11661             int
11662             ffpkyt(fptr,keyname,intval,frac,comment,status)
11663             fitsfile * fptr
11664             char * keyname
11665             long intval
11666             double frac
11667             char * comment
11668             int &status
11669             ALIAS:
11670             Astro::FITS::CFITSIO::fits_write_key_triple = 1
11671             fitsfilePtr::write_key_triple = 2
11672             OUTPUT:
11673             status
11674              
11675             int
11676             ffpunt(fptr,keyname,unit,status)
11677             fitsfile * fptr
11678             char * keyname
11679             char * unit
11680             int &status
11681             ALIAS:
11682             Astro::FITS::CFITSIO::fits_write_key_unit = 1
11683             fitsfilePtr::write_key_unit = 2
11684             OUTPUT:
11685             status
11686              
11687             int
11688             ffpkys(fptr,keyname,value,comment,status)
11689             fitsfile * fptr
11690             char * keyname
11691             char * value
11692             char * comment
11693             int &status
11694             ALIAS:
11695             Astro::FITS::CFITSIO::fits_write_key_str = 1
11696             fitsfilePtr::write_key_str = 2
11697             OUTPUT:
11698             status
11699              
11700             int
11701             ffpkyl(fptr,keyname,value,comment,status)
11702             fitsfile * fptr
11703             char * keyname
11704             int value
11705             char * comment
11706             int &status
11707             ALIAS:
11708             Astro::FITS::CFITSIO::fits_write_key_log = 1
11709             fitsfilePtr::write_key_log = 2
11710             OUTPUT:
11711             status
11712              
11713             int
11714             ffpkyj(fptr,keyname,value,comment,status)
11715             fitsfile * fptr
11716             char * keyname
11717             LONGLONG value
11718             char * comment
11719             int &status
11720             ALIAS:
11721             Astro::FITS::CFITSIO::fits_write_key_lng = 1
11722             fitsfilePtr::write_key_lng = 2
11723             OUTPUT:
11724             status
11725              
11726             int
11727             ffpkye(fptr,keyname,value,decimals,comment,status)
11728             fitsfile * fptr
11729             char * keyname
11730             float value
11731             int decimals
11732             char * comment
11733             int &status
11734             ALIAS:
11735             Astro::FITS::CFITSIO::fits_write_key_flt = 1
11736             fitsfilePtr::write_key_flt = 2
11737             OUTPUT:
11738             status
11739              
11740             int
11741             ffpkyf(fptr,keyname,value,decimals,comment,status)
11742             fitsfile * fptr
11743             char * keyname
11744             float value
11745             int decimals
11746             char * comment
11747             int &status
11748             ALIAS:
11749             Astro::FITS::CFITSIO::fits_write_key_fixflt = 1
11750             fitsfilePtr::write_key_fixflt = 2
11751             OUTPUT:
11752             status
11753              
11754             int
11755             ffpkyd(fptr,keyname,value,decimals,comment,status)
11756             fitsfile * fptr
11757             char * keyname
11758             double value
11759             int decimals
11760             char * comment
11761             int &status
11762             ALIAS:
11763             Astro::FITS::CFITSIO::fits_write_key_dbl = 1
11764             fitsfilePtr::write_key_dbl = 2
11765             OUTPUT:
11766             status
11767              
11768             int
11769             ffpkyg(fptr,keyname,value,decimals,comment,status)
11770             fitsfile * fptr
11771             char * keyname
11772             double value
11773             int decimals
11774             char * comment
11775             int &status
11776             ALIAS:
11777             Astro::FITS::CFITSIO::fits_write_key_fixdbl = 1
11778             fitsfilePtr::write_key_fixdbl = 2
11779             OUTPUT:
11780             status
11781              
11782             int
11783             ffpkyc(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_cmp = 1
11792             fitsfilePtr::write_key_cmp = 2
11793             OUTPUT:
11794             status
11795              
11796             int
11797             ffpkfc(fptr,keyname,value,decimals,comment,status)
11798             fitsfile * fptr
11799             char * keyname
11800             float * value
11801             int decimals
11802             char * comment
11803             int &status
11804             ALIAS:
11805             Astro::FITS::CFITSIO::fits_write_key_fixcmp = 1
11806             fitsfilePtr::write_key_fixcmp = 2
11807             OUTPUT:
11808             status
11809              
11810             int
11811             ffpkym(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_dblcmp = 1
11820             fitsfilePtr::write_key_dblcmp = 2
11821             OUTPUT:
11822             status
11823              
11824             int
11825             ffpkfm(fptr,keyname,value,decimals,comment,status)
11826             fitsfile * fptr
11827             char * keyname
11828             double * value
11829             int decimals
11830             char * comment
11831             int &status
11832             ALIAS:
11833             Astro::FITS::CFITSIO::fits_write_key_fixdblcmp = 1
11834             fitsfilePtr::write_key_fixdblcmp = 2
11835             OUTPUT:
11836             status
11837              
11838             int
11839             ffpkns(fptr,keyroot,nstart,nkeys,value,comment,status)
11840             fitsfile * fptr
11841             char * keyroot
11842             int nstart
11843             int nkeys
11844             char ** value
11845             char ** comment
11846             int &status
11847             ALIAS:
11848             Astro::FITS::CFITSIO::fits_write_keys_str = 1
11849             fitsfilePtr::write_keys_str = 2
11850             OUTPUT:
11851             status
11852              
11853             int
11854             ffpknl(fptr,keyroot,nstart,nkeys,value,comment,status)
11855             fitsfile * fptr
11856             char * keyroot
11857             int nstart
11858             int nkeys
11859             int * value
11860             char ** comment
11861             int &status
11862             ALIAS:
11863             Astro::FITS::CFITSIO::fits_write_keys_log = 1
11864             fitsfilePtr::write_keys_log = 2
11865             OUTPUT:
11866             status
11867              
11868             int
11869             ffpknj(fptr,keyroot,nstart,nkeys,value,comment,status)
11870             fitsfile * fptr
11871             char * keyroot
11872             int nstart
11873             int nkeys
11874             long * value
11875             char ** comment
11876             int &status
11877             ALIAS:
11878             Astro::FITS::CFITSIO::fits_write_keys_lng = 1
11879             fitsfilePtr::write_keys_lng = 2
11880             OUTPUT:
11881             status
11882              
11883             int
11884             ffpknjj(fptr,keyroot,nstart,nkeys,value,comment,status)
11885             fitsfile * fptr
11886             char * keyroot
11887             int nstart
11888             int nkeys
11889             LONGLONG * value
11890             char ** comment
11891             int &status
11892             ALIAS:
11893             Astro::FITS::CFITSIO::fits_write_keys_lnglng = 1
11894             fitsfilePtr::write_keysll = 2
11895             OUTPUT:
11896             status
11897              
11898             int
11899             ffpkne(fptr,keyroot,nstart,nkeys,value,decimals,comment,status)
11900             fitsfile * fptr
11901             char * keyroot
11902             int nstart
11903             int nkeys
11904             float * value
11905             int decimals
11906             char ** comment
11907             int &status
11908             ALIAS:
11909             Astro::FITS::CFITSIO::fits_write_keys_flt = 1
11910             fitsfilePtr::write_keys_flt = 2
11911             OUTPUT:
11912             status
11913              
11914             int
11915             ffpknf(fptr,keyroot,nstart,nkeys,value,decimals,comment,status)
11916             fitsfile * fptr
11917             char * keyroot
11918             int nstart
11919             int nkeys
11920             float * value
11921             int decimals
11922             char ** comment
11923             int &status
11924             ALIAS:
11925             Astro::FITS::CFITSIO::fits_write_keys_fixflt = 1
11926             fitsfilePtr::write_keys_fixflt = 2
11927             OUTPUT:
11928             status
11929              
11930             int
11931             ffpknd(fptr,keyroot,nstart,nkeys,value,decimals,comment,status)
11932             fitsfile * fptr
11933             char * keyroot
11934             int nstart
11935             int nkeys
11936             double * value
11937             int decimals
11938             char ** comment
11939             int &status
11940             ALIAS:
11941             Astro::FITS::CFITSIO::fits_write_keys_dbl = 1
11942             fitsfilePtr::write_keys_dbl = 2
11943             OUTPUT:
11944             status
11945              
11946             int
11947             ffpkng(fptr,keyroot,nstart,nkeys,value,decimals,comment,status)
11948             fitsfile * fptr
11949             char * keyroot
11950             int nstart
11951             int nkeys
11952             double * value
11953             int decimals
11954             char ** comment
11955             int &status
11956             ALIAS:
11957             Astro::FITS::CFITSIO::fits_write_keys_fixdbl = 1
11958             fitsfilePtr::write_keys_fixdbl = 2
11959             OUTPUT:
11960             status
11961              
11962             int
11963             ffpprn(fptr,felem,nelem,status)
11964             fitsfile * fptr
11965             LONGLONG felem
11966             LONGLONG nelem
11967             int &status
11968             ALIAS:
11969             Astro::FITS::CFITSIO::fits_write_null_img = 1
11970             fitsfilePtr::write_null_img = 2
11971             OUTPUT:
11972             status
11973              
11974             int
11975             ffprec(fptr,card,status)
11976             fitsfile * fptr
11977             char * card
11978             int &status
11979             ALIAS:
11980             Astro::FITS::CFITSIO::fits_write_record = 1
11981             fitsfilePtr::write_record = 2
11982             OUTPUT:
11983             status
11984              
11985             int
11986             ffpss(fptr, dtype, fpix, lpix, nelem, array, status)
11987             fitsfile *fptr
11988             int dtype
11989             long *fpix
11990             long *lpix
11991             SV *array
11992             int status
11993             ALIAS:
11994             Astro::FITS::CFITSIO::fits_write_subset = 1
11995             fitsfilePtr::write_subset = 2
11996             PREINIT:
11997             int storage_dtype;
11998             CODE:
11999 0           storage_dtype = dtype;
12000 0 0         if (dtype == TBIT)
12001 0           storage_dtype = TLOGICAL;
12002 0           RETVAL = ffpss(fptr,dtype,fpix,lpix,packND(array,storage_dtype),&status);
12003             OUTPUT:
12004             RETVAL
12005             status
12006              
12007             int
12008             ffpssb(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12009             fitsfile * fptr
12010             long group
12011             long naxis
12012             long * naxes
12013             long * fpixel
12014             long * lpixel
12015             byte * array
12016             int &status
12017             ALIAS:
12018             Astro::FITS::CFITSIO::fits_write_subset_byt = 1
12019             fitsfilePtr::write_subset_byt = 2
12020             OUTPUT:
12021             status
12022              
12023             int
12024             ffpsssb(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12025             fitsfile * fptr
12026             long group
12027             long naxis
12028             long * naxes
12029             long * fpixel
12030             long * lpixel
12031             signed char* array
12032             int &status
12033             ALIAS:
12034             Astro::FITS::CFITSIO::fits_write_subset_sbyt = 1
12035             fitsfilePtr::write_subset_sbyt = 2
12036             OUTPUT:
12037             status
12038              
12039             int
12040             ffpssui(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12041             fitsfile * fptr
12042             long group
12043             long naxis
12044             long * naxes
12045             long * fpixel
12046             long * lpixel
12047             unsigned short * array
12048             int &status
12049             ALIAS:
12050             Astro::FITS::CFITSIO::fits_write_subset_usht = 1
12051             fitsfilePtr::write_subset_usht = 2
12052             OUTPUT:
12053             status
12054              
12055             int
12056             ffpssi(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12057             fitsfile * fptr
12058             long group
12059             long naxis
12060             long * naxes
12061             long * fpixel
12062             long * lpixel
12063             short * array
12064             int &status
12065             ALIAS:
12066             Astro::FITS::CFITSIO::fits_write_subset_sht = 1
12067             fitsfilePtr::write_subset_sht = 2
12068             OUTPUT:
12069             status
12070              
12071             int
12072             ffpssuk(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12073             fitsfile * fptr
12074             long group
12075             long naxis
12076             long * naxes
12077             long * fpixel
12078             long * lpixel
12079             unsigned int * array
12080             int &status
12081             ALIAS:
12082             Astro::FITS::CFITSIO::fits_write_subset_uint = 1
12083             fitsfilePtr::write_subset_uint = 2
12084             OUTPUT:
12085             status
12086              
12087             int
12088             ffpssk(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12089             fitsfile * fptr
12090             long group
12091             long naxis
12092             long * naxes
12093             long * fpixel
12094             long * lpixel
12095             int * array
12096             int &status
12097             ALIAS:
12098             Astro::FITS::CFITSIO::fits_write_subset_int = 1
12099             fitsfilePtr::write_subset_int = 2
12100             OUTPUT:
12101             status
12102              
12103             int
12104             ffpssuj(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12105             fitsfile * fptr
12106             long group
12107             long naxis
12108             long * naxes
12109             long * fpixel
12110             long * lpixel
12111             unsigned long * array
12112             int &status
12113             ALIAS:
12114             Astro::FITS::CFITSIO::fits_write_subset_ulng = 1
12115             fitsfilePtr::write_subset_ulng = 2
12116             OUTPUT:
12117             status
12118              
12119             int
12120             ffpssj(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12121             fitsfile * fptr
12122             long group
12123             long naxis
12124             long * naxes
12125             long * fpixel
12126             long * lpixel
12127             long * array
12128             int &status
12129             ALIAS:
12130             Astro::FITS::CFITSIO::fits_write_subset_lng = 1
12131             fitsfilePtr::write_subset_lng = 2
12132             OUTPUT:
12133             status
12134              
12135             int
12136             ffpssjj(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12137             fitsfile * fptr
12138             long group
12139             long naxis
12140             long * naxes
12141             long * fpixel
12142             long * lpixel
12143             LONGLONG* array
12144             int &status
12145             ALIAS:
12146             Astro::FITS::CFITSIO::fits_write_subset_lnglng = 1
12147             fitsfilePtr::write_subset_lnglng = 2
12148             OUTPUT:
12149             status
12150              
12151             int
12152             ffpsse(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12153             fitsfile * fptr
12154             long group
12155             long naxis
12156             long * naxes
12157             long * fpixel
12158             long * lpixel
12159             float * array
12160             int &status
12161             ALIAS:
12162             Astro::FITS::CFITSIO::fits_write_subset_flt = 1
12163             fitsfilePtr::write_subset_flt = 2
12164             OUTPUT:
12165             status
12166              
12167             int
12168             ffpssd(fptr,group,naxis,naxes,fpixel,lpixel,array,status)
12169             fitsfile * fptr
12170             long group
12171             long naxis
12172             long * naxes
12173             long * fpixel
12174             long * lpixel
12175             double * array
12176             int &status
12177             ALIAS:
12178             Astro::FITS::CFITSIO::fits_write_subset_dbl = 1
12179             fitsfilePtr::write_subset_dbl = 2
12180             OUTPUT:
12181             status
12182              
12183             int
12184             ffptbb(fptr,frow,fchar,nchars,values,status)
12185             fitsfile * fptr
12186             LONGLONG frow
12187             LONGLONG fchar
12188             LONGLONG nchars
12189             byte * values;
12190             int &status
12191             ALIAS:
12192             Astro::FITS::CFITSIO::fits_write_tblbytes = 1
12193             fitsfilePtr::write_tblbytes = 2
12194             OUTPUT:
12195             status
12196              
12197             int
12198             ffptdm(fptr,colnum,naxis,naxes,status)
12199             fitsfile * fptr
12200             int colnum
12201             int naxis
12202             long * naxes
12203             int &status
12204             ALIAS:
12205             Astro::FITS::CFITSIO::fits_write_tdim = 1
12206             fitsfilePtr::write_tdim = 2
12207             OUTPUT:
12208             status
12209              
12210             int
12211             ffptdmll(fptr,colnum,naxis,naxes,status)
12212             fitsfile * fptr
12213             int colnum
12214             int naxis
12215             LONGLONG * naxes
12216             int &status
12217             ALIAS:
12218             Astro::FITS::CFITSIO::fits_write_tdimll = 1
12219             fitsfilePtr::write_tdimll = 2
12220             OUTPUT:
12221             status
12222              
12223             int
12224             ffpthp(fptr,theap,status)
12225             fitsfile * fptr
12226             long theap
12227             int &status
12228             ALIAS:
12229             Astro::FITS::CFITSIO::fits_write_theap = 1
12230             fitsfilePtr::write_theap = 2
12231             OUTPUT:
12232             status
12233              
12234             int
12235             ffgiwcs(fptr,header,status)
12236             fitsfile * fptr
12237             char * header = NO_INIT
12238             int status
12239              
12240             ALIAS:
12241             Astro::FITS::CFITSIO::fits_get_image_wcs_keys = 1
12242             fitsfilePtr::get_image_wcs_keys = 2
12243             CODE:
12244 0           RETVAL = ffgiwcs(fptr,&header,&status);
12245 0 0         if (status == 0) {
12246 0 0         if (ST(1) != &PL_sv_undef)
12247 0           unpackScalar(ST(1),header,TSTRING);
12248 0           free(header);
12249             }
12250             OUTPUT:
12251             RETVAL
12252             status
12253              
12254             int
12255             ffgtwcs(fptr,xcol,ycol,header,status)
12256             fitsfile * fptr
12257             int xcol
12258             int ycol
12259             char * header = NO_INIT
12260             int status
12261             ALIAS:
12262             Astro::FITS::CFITSIO::fits_get_table_wcs_keys = 1
12263             fitsfilePtr::get_table_wcs_keys = 2
12264             CODE:
12265 0           RETVAL = ffgtwcs(fptr,xcol,ycol,&header,&status);
12266 0 0         if (status == 0) {
12267 0 0         if (ST(3)!=&PL_sv_undef)
12268 0           unpackScalar(ST(3),header,TSTRING);
12269 0           free(header);
12270             }
12271             OUTPUT:
12272             RETVAL
12273             status
12274              
12275             int
12276             ffgipr(fptr,bitbix,naxis,naxes,status)
12277             FitsFile * fptr
12278             int bitpix = NO_INIT
12279             int naxis = NO_INIT
12280             long * naxes = NO_INIT
12281             int status
12282             ALIAS:
12283             Astro::FITS::CFITSIO::fits_get_img_parm = 1
12284             fitsfilePtr::get_img_parm = 2
12285             CODE:
12286 0 0         if (ST(3)!=&PL_sv_undef) {
12287 0           RETVAL = ffgipr(fptr->fptr,0,&bitpix,&naxis,NULL,&status);
12288 0           naxes = get_mortalspace(naxis,TLONG);
12289             }
12290             else {
12291 0           naxis = 0;
12292 0           naxes = NULL;
12293             }
12294 0           RETVAL = ffgipr(fptr->fptr,naxis,&bitpix,&naxis,naxes,&status);
12295 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),bitpix);
12296 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
12297 0 0         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONG,fptr->perlyunpacking);
12298             OUTPUT:
12299             status
12300             RETVAL
12301              
12302             int
12303             ffgiprll(fptr,bitbix,naxis,naxes,status)
12304             FitsFile * fptr
12305             int bitpix = NO_INIT
12306             int naxis = NO_INIT
12307             LONGLONG * naxes = NO_INIT
12308             int status
12309             ALIAS:
12310             Astro::FITS::CFITSIO::fits_get_img_parmll = 1
12311             fitsfilePtr::get_img_parmll = 2
12312             CODE:
12313 0 0         if (ST(3)!=&PL_sv_undef) {
12314 0           RETVAL = ffgiprll(fptr->fptr,0,&bitpix,&naxis,NULL,&status);
12315 0           naxes = get_mortalspace(naxis,TLONGLONG);
12316             }
12317             else {
12318 0           naxis = 0;
12319 0           naxes = NULL;
12320             }
12321 0           RETVAL = ffgiprll(fptr->fptr,naxis,&bitpix,&naxis,naxes,&status);
12322 0 0         if (ST(1)!=&PL_sv_undef) sv_setiv(ST(1),bitpix);
12323 0 0         if (ST(2)!=&PL_sv_undef) sv_setiv(ST(2),naxis);
12324 0 0         if (ST(3)!=&PL_sv_undef) unpack1D(ST(3),naxes,naxis,TLONGLONG,fptr->perlyunpacking);
12325             OUTPUT:
12326             status
12327             RETVAL
12328              
12329             int
12330             ffgkcl(card)
12331             char * card
12332             ALIAS:
12333             Astro::FITS::CFITSIO::fits_get_keyclass = 1
12334              
12335             int
12336             ffgpxv(fptr, dtype, fpix, nelem, nulval, array, anynul, status)
12337             FitsFile * fptr
12338             int dtype
12339             long * fpix
12340             LONGLONG nelem
12341             SV * nulval
12342             void * array = NO_INIT
12343             int anynul = NO_INIT
12344             int status
12345             ALIAS:
12346             Astro::FITS::CFITSIO::fits_read_pix = 1
12347             fitsfilePtr::read_pix = 2
12348             PREINIT:
12349             int naxis;
12350             long *naxes;
12351             OFF_T nelem_all;
12352             int i;
12353             CODE:
12354 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
12355 0 0         SvGROW(ST(5),nelem*sizeof_datatype(dtype));
    0          
12356 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          
12357             }
12358             else {
12359             /* find out how many elements are in the image,
12360             * allocate space, read, unpack
12361             */
12362 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
12363 0 0         if (status == 0) {
12364 0           naxes = get_mortalspace(naxis, TLONG);
12365 0           RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
12366 0           nelem_all = 1;
12367 0 0         for (i=0; i
12368 0           nelem_all *= naxes[i];
12369 0           array=get_mortalspace(nelem_all,dtype);
12370 0 0         RETVAL=ffgpxv(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), array, &anynul, &status);
12371 0 0         if (status == 0) {
12372 0           order_reverse(naxis, naxes);
12373 0           unpackND(ST(5), array, naxis, naxes, dtype, fptr->perlyunpacking);
12374             }
12375             }
12376             }
12377 0 0         if (ST(6) != &PL_sv_undef)
12378 0           sv_setiv(ST(6), anynul);
12379             OUTPUT:
12380             status
12381             RETVAL
12382              
12383             int
12384             ffgpxvll(fptr, dtype, fpix, nelem, nulval, array, anynul, status)
12385             FitsFile * fptr
12386             int dtype
12387             LONGLONG * fpix
12388             LONGLONG nelem
12389             SV * nulval
12390             void * array = NO_INIT
12391             int anynul = NO_INIT
12392             int status
12393             ALIAS:
12394             Astro::FITS::CFITSIO::fits_read_pixll = 1
12395             fitsfilePtr::read_pixll = 2
12396             PREINIT:
12397             int naxis;
12398             LONGLONG *naxes;
12399             OFF_T nelem_all;
12400             int i;
12401             CODE:
12402 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
12403 0 0         SvGROW(ST(5),nelem*sizeof_datatype(dtype));
    0          
12404 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          
12405             }
12406             else {
12407             /* find out how many elements are in the image,
12408             * allocate space, read, unpack
12409             */
12410 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
12411 0 0         if (status == 0) {
12412 0           naxes = get_mortalspace(naxis, TLONGLONG);
12413 0           RETVAL = ffgiszll(fptr->fptr, naxis, naxes, &status);
12414 0           nelem_all = 1;
12415 0 0         for (i=0; i
12416 0           nelem_all *= naxes[i];
12417 0           array=get_mortalspace(nelem_all,dtype);
12418 0 0         RETVAL=ffgpxvll(fptr->fptr, dtype, fpix, nelem, (nulval!=&PL_sv_undef ? pack1D(nulval, dtype) : NULL), array, &anynul, &status);
12419 0 0         if (status == 0) {
12420 0           order_reversell(naxis, naxes);
12421 0           unpackNDll(ST(5), array, naxis, naxes, dtype,fptr->perlyunpacking);
12422             }
12423             }
12424             }
12425 0 0         if (ST(6) != &PL_sv_undef)
12426 0           sv_setiv(ST(6), anynul);
12427             OUTPUT:
12428             status
12429             RETVAL
12430              
12431             int
12432             ffgpxf(fptr, dtype, fpix, nelem, array, nullarray, anynul, status)
12433             FitsFile * fptr
12434             int dtype
12435             long * fpix
12436             LONGLONG nelem
12437             void * array = NO_INIT
12438             logical * nullarray = NO_INIT
12439             int anynul = NO_INIT
12440             int status
12441             ALIAS:
12442             Astro::FITS::CFITSIO::fits_read_pixnull = 1
12443             fitsfilePtr::read_pixnull = 2
12444             PREINIT:
12445             int naxis;
12446             long *naxes;
12447             OFF_T nelem_all;
12448             int i;
12449             CODE:
12450 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
12451 0 0         if (ST(4) != &PL_sv_undef) {
12452 0 0         SvGROW(ST(4),nelem*sizeof_datatype(dtype));
    0          
12453 0 0         array = (void*)SvPV(ST(4),PL_na);
12454             }
12455             else
12456 0           array = get_mortalspace(nelem, dtype);
12457 0 0         if (ST(5) != &PL_sv_undef) {
12458 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
12459 0 0         nullarray = (logical*)SvPV(ST(5),PL_na);
12460             }
12461             else
12462 0           nullarray = get_mortalspace(nelem,TLOGICAL);
12463 0           RETVAL = ffgpxf(fptr->fptr,dtype,fpix,nelem,array,nullarray, &anynul,&status);
12464             }
12465             else {
12466             /* find out how many elements are in the image,
12467             * allocate space, read, unpack
12468             */
12469 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
12470 0 0         if (status == 0) {
12471 0           naxes = get_mortalspace(naxis, TLONG);
12472 0           RETVAL = ffgisz(fptr->fptr, naxis, naxes, &status);
12473 0           nelem_all = 1;
12474 0 0         for (i=0; i
12475 0           nelem_all *= naxes[i];
12476 0           array=get_mortalspace(nelem_all,dtype);
12477 0           nullarray=get_mortalspace(nelem_all,TLOGICAL);
12478 0           RETVAL=ffgpxf(fptr->fptr,dtype,fpix,nelem,array,nullarray,&anynul,&status);
12479 0 0         if (status == 0) {
12480 0           order_reverse(naxis, naxes);
12481 0 0         if (ST(4)!=&PL_sv_undef)
12482 0           unpackND(ST(4),array,naxis,naxes,dtype,fptr->perlyunpacking);
12483 0 0         if (ST(5)!=&PL_sv_undef)
12484 0           unpackND(ST(5),nullarray,naxis,naxes,TLOGICAL,fptr->perlyunpacking);
12485             }
12486             }
12487             }
12488 0 0         if (ST(6) != &PL_sv_undef)
12489 0           sv_setiv(ST(6), anynul);
12490             OUTPUT:
12491             status
12492             RETVAL
12493              
12494             int
12495             ffgpxfll(fptr, dtype, fpix, nelem, array, nullarray, anynul, status)
12496             FitsFile * fptr
12497             int dtype
12498             LONGLONG * fpix
12499             LONGLONG nelem
12500             void * array = NO_INIT
12501             logical * nullarray = NO_INIT
12502             int anynul = NO_INIT
12503             int status
12504             ALIAS:
12505             Astro::FITS::CFITSIO::fits_read_pixnullll = 1
12506             fitsfilePtr::read_pixnullll = 2
12507             PREINIT:
12508             int naxis;
12509             LONGLONG *naxes;
12510             OFF_T nelem_all;
12511             int i;
12512             CODE:
12513 0 0         if (!PERLYUNPACKING(fptr->perlyunpacking)) {
    0          
12514 0 0         if (ST(4) != &PL_sv_undef) {
12515 0 0         SvGROW(ST(4),nelem*sizeof_datatype(dtype));
    0          
12516 0 0         array = (void*)SvPV(ST(4),PL_na);
12517             }
12518             else
12519 0           array = get_mortalspace(nelem, dtype);
12520 0 0         if (ST(5) != &PL_sv_undef) {
12521 0 0         SvGROW(ST(5),nelem*sizeof_datatype(TLOGICAL));
    0          
12522 0 0         nullarray = (logical*)SvPV(ST(5),PL_na);
12523             }
12524             else
12525 0           nullarray = get_mortalspace(nelem,TLOGICAL);
12526 0           RETVAL = ffgpxfll(fptr->fptr,dtype,fpix,nelem,array,nullarray, &anynul,&status);
12527             }
12528             else {
12529             /* find out how many elements are in the image,
12530             * allocate space, read, unpack
12531             */
12532 0           RETVAL = ffgidm(fptr->fptr, &naxis, &status);
12533 0 0         if (status == 0) {
12534 0           naxes = get_mortalspace(naxis, TLONGLONG);
12535 0           RETVAL = ffgiszll(fptr->fptr, naxis, naxes, &status);
12536 0           nelem_all = 1;
12537 0 0         for (i=0; i
12538 0           nelem_all *= naxes[i];
12539 0           array=get_mortalspace(nelem_all,dtype);
12540 0           nullarray=get_mortalspace(nelem_all,TLOGICAL);
12541 0           RETVAL=ffgpxfll(fptr->fptr,dtype,fpix,nelem,array,nullarray,&anynul,&status);
12542 0 0         if (status == 0) {
12543 0           order_reversell(naxis, naxes);
12544 0 0         if (ST(4)!=&PL_sv_undef)
12545 0           unpackNDll(ST(4),array,naxis,naxes,dtype,fptr->perlyunpacking);
12546 0 0         if (ST(5)!=&PL_sv_undef)
12547 0           unpackNDll(ST(5),nullarray,naxis,naxes,TLOGICAL,fptr->perlyunpacking);
12548             }
12549             }
12550             }
12551 0 0         if (ST(6) != &PL_sv_undef)
12552 0           sv_setiv(ST(6), anynul);
12553             OUTPUT:
12554             status
12555             RETVAL
12556              
12557             int
12558             ffppx(fptr, dtype, fpix, nelem, array, status)
12559             fitsfile * fptr
12560             int dtype
12561             long * fpix
12562             LONGLONG nelem
12563             SV * array
12564             int status
12565             ALIAS:
12566             Astro::FITS::CFITSIO::fits_write_pix = 1
12567             fitsfilePtr::write_pix = 2
12568             PREINIT:
12569             int storage_dtype;
12570             CODE:
12571 0           storage_dtype = dtype;
12572 0 0         if (dtype == TBIT)
12573 0           storage_dtype = TLOGICAL;
12574 0           RETVAL = ffppx(fptr,dtype,fpix,nelem,packND(array,storage_dtype),&status);
12575             OUTPUT:
12576             RETVAL
12577             status
12578              
12579             int
12580             ffppxll(fptr, dtype, fpix, nelem, array, status)
12581             fitsfile * fptr
12582             int dtype
12583             LONGLONG * fpix
12584             LONGLONG nelem
12585             SV * array
12586             int status
12587             ALIAS:
12588             Astro::FITS::CFITSIO::fits_write_pixll = 1
12589             fitsfilePtr::write_pixll = 2
12590             PREINIT:
12591             int storage_dtype;
12592             CODE:
12593 0           storage_dtype = dtype;
12594 0 0         if (dtype == TBIT)
12595 0           storage_dtype = TLOGICAL;
12596 0           RETVAL = ffppxll(fptr,dtype,fpix,nelem,packND(array,storage_dtype),&status);
12597             OUTPUT:
12598             RETVAL
12599             status
12600              
12601             int
12602             ffppxn(fptr, dtype, fpix, nelem, array, nulval, status)
12603             fitsfile * fptr
12604             int dtype
12605             long * fpix
12606             LONGLONG nelem
12607             SV * array
12608             SV * nulval
12609             int status
12610             ALIAS:
12611             Astro::FITS::CFITSIO::fits_write_pixnull = 1
12612             fitsfilePtr::write_pixnull = 2
12613             PREINIT:
12614             int storage_dtype;
12615             CODE:
12616 0           storage_dtype = dtype;
12617 0 0         if (dtype == TBIT)
12618 0           storage_dtype = TLOGICAL;
12619 0 0         RETVAL = ffppxn(fptr,dtype,fpix,nelem,packND(array,storage_dtype),(nulval!=&PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL), &status);
12620             OUTPUT:
12621             RETVAL
12622             status
12623              
12624             int
12625             ffppxnll(fptr, dtype, fpix, nelem, array, nulval, status)
12626             fitsfile * fptr
12627             int dtype
12628             LONGLONG * fpix
12629             LONGLONG nelem
12630             SV * array
12631             SV * nulval
12632             int status
12633             ALIAS:
12634             Astro::FITS::CFITSIO::fits_write_pixnullll = 1
12635             fitsfilePtr::write_pixnullll = 2
12636             PREINIT:
12637             int storage_dtype;
12638             CODE:
12639 0           storage_dtype = dtype;
12640 0 0         if (dtype == TBIT)
12641 0           storage_dtype = TLOGICAL;
12642 0 0         RETVAL = ffppxnll(fptr,dtype,fpix,nelem,packND(array,storage_dtype),(nulval!=&PL_sv_undef ? pack1D(nulval,storage_dtype) : NULL), &status);
12643             OUTPUT:
12644             RETVAL
12645             status
12646