File Coverage

CFITSIO.xs
Criterion Covered Total %
statement 389 2523 15.4
branch 249 3196 7.7
condition n/a
subroutine n/a
pod n/a
total 638 5719 11.1


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