Changeset 4061 for trunk/doc/pslib/psLibSDRS.tex
- Timestamp:
- May 31, 2005, 3:33:39 PM (21 years ago)
- File:
-
- 1 edited
-
trunk/doc/pslib/psLibSDRS.tex (modified) (60 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/doc/pslib/psLibSDRS.tex
r4057 r4061 1 %%% $Id: psLibSDRS.tex,v 1.23 8 2005-05-31 21:55:39 jhoblitt Exp $1 %%% $Id: psLibSDRS.tex,v 1.239 2005-06-01 01:33:39 jhoblitt Exp $ 2 2 \documentclass[panstarrs,spec]{panstarrs} 3 3 … … 335 335 psFreeFcn freeFcn; ///< deallocator. If NULL, use generic deallocation. 336 336 size_t userMemorySize; ///< the size of the user-portion of the memory block 337 const psMem oryId id;///< a unique ID for this allocation337 const psMemId id; ///< a unique ID for this allocation 338 338 const char* file; ///< set from __FILE__ in e.g. p_psAlloc 339 const int lineno;///< set from __LINE__ in e.g. p_psAlloc339 const unsigned int lineno; ///< set from __LINE__ in e.g. p_psAlloc 340 340 pthread_mutex_t refCounterMutex; ///< mutex to ensure exclusive access to reference counter 341 341 psReferenceCount refCounter; ///< how many times pointer is referenced … … 345 345 346 346 typedef void (*psFreeFcn)(void* ptr); 347 typedef unsigned long psMem oryId;347 typedef unsigned long psMemId; 348 348 typedef unsigned long psReferenceCount; 349 349 \end{datatype} … … 434 434 % 435 435 \begin{prototype} 436 psPtr p_psAlloc(size_t size, const char *file ,int lineno);437 psPtr p_psRealloc(psPtr ptr, size_t size, const char *file ,int lineno);438 void p_psFree(psPtr ptr, const char *file ,int lineno);436 psPtr p_psAlloc(size_t size, const char *filename, unsigned int lineno); 437 psPtr p_psRealloc(psPtr ptr, size_t size, const char *filename, unsigned int lineno); 438 void p_psFree(psPtr ptr, const char *filename, unsigned int lineno); 439 439 \end{prototype} 440 440 % … … 481 481 482 482 \begin{prototype} 483 void psMemSetDeallocator( void*ptr, psFreeFcn freeFcn);484 psFreeFcn psMemGetDeallocator( void*ptr);483 void psMemSetDeallocator(psPtr ptr, psFreeFcn freeFcn); 484 psFreeFcn psMemGetDeallocator(const psPtr ptr); 485 485 \end{prototype} 486 486 … … 526 526 \item \code{psMemExhaustedCallbackDefault} 527 527 \item \code{psMemProblemCallbackDefault} 528 \item \code{psMemAlloc ateCallbackDefault}528 \item \code{psMemAllocCallbackDefault} 529 529 \item \code{psMemFreeCallbackDefault} 530 530 \end{itemize} … … 573 573 % 574 574 \begin{datatype} 575 typedef void (*psMemProblemCallback)(psMemBlock *ptr, char *file ,int lineno);575 typedef void (*psMemProblemCallback)(psMemBlock *ptr, char *filename, unsigned int lineno); 576 576 \end{datatype} 577 577 … … 588 588 detected by checking \code{psMemBlock.refCounter}. 589 589 590 \subsubsubsection{\tt psMemAlloc ateCallback \& psMemFreeCallback}591 592 Two private variables, \code{p_psMemAlloc ateID} and590 \subsubsubsection{\tt psMemAllocCallback \& psMemFreeCallback} 591 592 Two private variables, \code{p_psMemAllocID} and 593 593 \code{p_psMemFreeID}, can be used to trace the allocation and freeing 594 of specific memory blocks. If the first (\code{p_psMemAlloc ateID}) is594 of specific memory blocks. If the first (\code{p_psMemAllocID}) is 595 595 set and a memory block with that ID is allocated, the corresponding 596 596 callback is called just before memory is returned to the calling … … 602 602 % 603 603 \begin{prototype} 604 psMem oryId psMemAllocateCallbackSetID(psMemoryId id);605 psMem oryId psMemFreeCallbackSetID(psMemoryId id);604 psMemId psMemAllocCallbackSetID(psMemId id); 605 psMemId psMemFreeCallbackSetID(psMemId id); 606 606 \end{prototype} 607 607 % … … 609 609 % 610 610 \begin{datatype} 611 typedef psMem oryId (*psMemAllocateCallback)(const psMemBlock *ptr);612 \end{datatype} 613 614 \begin{prototype} 615 psMemAlloc ateCallback psMemAllocateCallbackSet(psMemAllocateCallback func);616 \end{prototype} 617 618 \begin{datatype} 619 typedef psMem oryId (*psMemFreeCallback)(const psMemBlock *ptr);611 typedef psMemId (*psMemAllocCallback)(const psMemBlock *ptr); 612 \end{datatype} 613 614 \begin{prototype} 615 psMemAllocCallback psMemAllocCallbackSet(psMemAllocCallback func); 616 \end{prototype} 617 618 \begin{datatype} 619 typedef psMemId (*psMemFreeCallback)(const psMemBlock *ptr); 620 620 \end{datatype} 621 621 622 622 \begin{prototype} 623 623 psMemFreeCallback psMemFreeCallbackSet(psMemFreeCallback func); 624 psMem oryId psMemGetId(void);624 psMemId psMemGetId(void); 625 625 \end{prototype} 626 626 % 627 627 The callback functions are called with a pointer to the corresponding 628 628 memory block. The routines \code{psMemFreeCallbackIDSet} and 629 \code{psMemAlloc ateCallbackIDSet} accept the desired ID value and return the629 \code{psMemAllocCallbackIDSet} accept the desired ID value and return the 630 630 old value to the user. The return values of the handlers installed by 631 \code{psMemAlloc ateCallbackSet} and \code{psMemFreeCallbackSet} are632 used to increment the values of \code{p_psMemAlloc ateID} and631 \code{psMemAllocCallbackSet} and \code{psMemFreeCallbackSet} are 632 used to increment the values of \code{p_psMemAllocID} and 633 633 \code{p_psMemFreeID} respectively. For example, a return value of 634 634 \code{0} implies that the value is unchanged; if the value is \code{2} … … 649 649 % 650 650 \begin{prototype} 651 int psMemCheckLeaks(psMem oryId id0, psMemBlock ***array, FILE *fd, bool persistence);651 int psMemCheckLeaks(psMemId id0, psMemBlock ***array, FILE *fd, bool persistence); 652 652 int psMemCheckCorruption(bool abort_on_error); 653 653 \end{prototype} … … 828 828 % 829 829 \begin{prototype} 830 void psTrace(const char *facil, int myLevel,...);830 void psTrace(const char *facil, int level,...); 831 831 \end{prototype} 832 832 % … … 835 835 \code{vprintf} functions. This command specifies the name of the 836 836 facility to which the message belongs (\code{facil}), the trace level 837 for this message in that facility (\code{ myLevel}) and the message837 for this message in that facility (\code{level}) and the message 838 838 itself. 839 839 … … 857 857 \code{psTrace}) must be printed if and only if 858 858 \code{psTraceGetLevel(facil)} returns a value greater than or equal to 859 the value of \code{ myLevel} for that message. That is, a larger859 the value of \code{level} for that message. That is, a larger 860 860 number for the trace level corresponds to lower-level statements, and 861 861 hence is more verbose. … … 956 956 % 957 957 \begin{prototype} 958 void psLogMsg(const char *name, int myLevel, const char *fmt, ...);959 void psLogMsgV(const char *name, int myLevel, const char *fmt, va_list ap);958 void psLogMsg(const char *name, int level, const char *fmt, ...); 959 void psLogMsgV(const char *name, int level, const char *fmt, va_list ap); 960 960 \end{prototype} 961 961 where \code{name} is a word to describe the source of the message, 962 \code{ myLevel} is the severity level of this message, and \code{fmt}962 \code{level} is the severity level of this message, and \code{fmt} 963 963 is a printf-style formatting statement defining the actual message, 964 964 and is followed by the arguments to the formatting code. The second … … 983 983 This function returns the previous log level. A specific message 984 984 invoked with \code{psLogMsg} is only printed if its value of 985 \code{ myLevel} is less than the current value set by985 \code{level} is less than the current value set by 986 986 \code{psLogSetLevel}. The default log level is set to 987 987 \code{PS_LOG_INFO}. … … 1059 1059 returns the error code. 1060 1060 \begin{prototype} 1061 psErrorCode p_psError(const char *file ,int lineno, const char *func, psErrorCode code, bool new,1061 psErrorCode p_psError(const char *filename, unsigned int lineno, const char *func, psErrorCode code, bool new, 1062 1062 const char *fmt, ...); 1063 1063 \end{prototype} … … 1340 1340 In addition, we specify two functions for working with \code{psScalar} data: 1341 1341 \begin{prototype} 1342 psScalar *psScalarAlloc( psC64 value, psElemType dataType);1342 psScalar *psScalarAlloc(complex double value, psElemType type); 1343 1343 psScalar *psScalarCopy(const psScalar *value); 1344 1344 \end{prototype} 1345 1345 The first creates a \code{psType}-ed structure from a constant value, 1346 casting it as appropriate based on the \code{ dataType}. The second1346 casting it as appropriate based on the \code{type}. The second 1347 1347 copies the provided \code{psScalar} value. This latter function is 1348 1348 necessary to keep a copy of an existing \code{psScalar} value, since … … 1605 1605 specified \code{position}. 1606 1606 1607 \begin{prototype} 1608 psArray *psArraySort(psArray *array, int (*compare)(const void **a, const void **b) ); 1607 \begin{datatype} 1608 typedef int (*psComparePtrFunc) ( 1609 const void **a, ///< first comparison target 1610 const void **b ///< second comparison target 1611 ); 1612 \end{datatype} 1613 1614 \begin{prototype} 1615 psArray *psArraySort(psArray *array, psComparePtrFunc func); 1609 1616 \end{prototype} 1610 1617 An array may be sorted using \code{psArraySort}, which requires the … … 1652 1659 1653 1660 \begin{prototype} 1654 psList *psListAlloc( const void *data);1661 psList *psListAlloc(psPtr data); 1655 1662 \end{prototype} 1656 1663 Create a list. This function may take a pointer to a data item, or it … … 1724 1731 1725 1732 \begin{prototype} 1726 bool psListAdd(psList *list, int location, const void *data);1727 bool psListAddAfter(psListIterator *iterator, const void *data);1728 bool psListAddBefore(psListIterator *iterator, const void *data);1733 bool psListAdd(psList *list, int location, psPtr data); 1734 bool psListAddAfter(psListIterator *iterator, psPtr data); 1735 bool psListAddBefore(psListIterator *iterator, psPtr data); 1729 1736 \end{prototype} 1730 1737 the first function, \code{psListAdd}, adds an entry to the \code{list} … … 1742 1749 1743 1750 \begin{prototype} 1744 void *psListGet(psList *list, int location);1745 void *psListGetAndIncrement(psListIterator *iterator);1746 void *psListGetAndDecrement(psListIterator *iterator);1751 psPtr psListGet(psList *list, int location); 1752 psPtr psListGetAndIncrement(psListIterator *iterator); 1753 psPtr psListGetAndDecrement(psListIterator *iterator); 1747 1754 \end{prototype} 1748 1755 A data item may be retrieved from the list with these functions. The … … 1773 1780 \begin{prototype} 1774 1781 bool psListRemove(psList *list, int location) 1775 bool psListRemoveData(psList *list, const void *data);1782 bool psListRemoveData(psList *list, psPtr data); 1776 1783 \end{prototype} 1777 1784 A data item may be removed from the list with these functions. For … … 1800 1807 1801 1808 \begin{prototype} 1802 psList *psListSort(psList *list, int (*compare)(const void **a, const void **b));1809 psList *psListSort(psList *list, psComparePtrFunc func); 1803 1810 \end{prototype} 1804 1811 A list may be sorted using \code{psListSort}, which requires the … … 1855 1862 A hash table is created with the following function: 1856 1863 \begin{prototype} 1857 psHash *psHashAlloc(ps S32 nbuckets);1864 psHash *psHashAlloc(psU32 nalloc); 1858 1865 \end{prototype} 1859 1866 which allocates the space for the hash table, creating and … … 1864 1871 A data item may be added to the hash table with the function: 1865 1872 \begin{prototype} 1866 bool psHashAdd(psHash * table, const char *key, psPtr data);1873 bool psHashAdd(psHash *hash, const char *key, psPtr data); 1867 1874 \end{prototype} 1868 1875 In this function, the value of the string \code{key} is used to … … 1875 1882 The data associated with a given key may be found with the function: 1876 1883 \begin{prototype} 1877 void *psHashLookup(const psHash *table, const char *key);1884 psPtr psHashLookup(const psHash *hash, const char *key); 1878 1885 \end{prototype} 1879 1886 which returns the data value pointed to by the element associated with … … 1881 1888 a specific key may be removed (deleted) with the function: 1882 1889 \begin{prototype} 1883 bool psHashRemove(psHash * table, const char *key);1890 bool psHashRemove(psHash *hash, const char *key); 1884 1891 \end{prototype} 1885 1892 The function returns a value of \code{true} if the operation was … … 1888 1895 The function 1889 1896 \begin{prototype} 1890 psList *psHashKeyList(const psHash * table);1897 psList *psHashKeyList(const psHash *hash); 1891 1898 \end{prototype} 1892 1899 returns the complete list of defined keys associated with the … … 1894 1901 1895 1902 \begin{prototype} 1896 psArray *psHashToArray(const psHash * table);1903 psArray *psHashToArray(const psHash *hash); 1897 1904 \end{prototype} 1898 1905 This function places the data in a \code{psHash} into a \code{psArray} … … 1956 1963 \begin{prototype} 1957 1964 psLookupTable *psLookupTableAlloc(const char *filename, ///< File from which to read 1958 const char *format ///< scanf-like format string1965 const char *format, ///< scanf-like format string 1959 1966 int indexCol ///< Column of the index vector (starting at zero) 1960 1967 ); … … 2000 2007 functions: 2001 2008 \begin{prototype} 2002 psF64 psLookupTableInterpolate(const psLookupTable *table, psF64index, int column, psLookupStatusType *status);2003 psVector *psLookupTableInterpolateAll(const psLookupTable *table, psF64index, psVector *stats);2009 double psLookupTableInterpolate(const psLookupTable *table, double index, int column, psLookupStatusType *status); 2010 psVector *psLookupTableInterpolateAll(const psLookupTable *table, double index, psVector *stats); 2004 2011 \end{prototype} 2005 2012 Both functions shall interpolate the \code{table} at the provided … … 2054 2061 We also require the corresponding constructor and destructor: 2055 2062 \begin{prototype} 2056 psBitSet *psBitSetAlloc(ps S32 n);2063 psBitSet *psBitSetAlloc(psU32 nalloc); 2057 2064 \end{prototype} 2058 2065 where \code{n} is the requested number of bits. … … 2068 2075 2069 2076 \begin{prototype} 2070 psBitSet *psBitSetSet(psBitSet *bitSet, ps S32 bit);2071 psBitSet* psBitSetClear(psBitSet *bitSet, ps S32 bit);2077 psBitSet *psBitSetSet(psBitSet *bitSet, psU32 bit); 2078 psBitSet* psBitSetClear(psBitSet *bitSet, psU32 bit); 2072 2079 psBitSet *psBitSetOp(psBitSet *outBitSet, const psBitSet *inBitSet1, const char *operator, const psBitSet *inBitSet2); 2073 2080 psBitSet *psBitSetNot(psBitSet *outBitSet, const psBitSet *inBitSet); 2074 bool psBitSetTest(const psBitSet *bitSet, ps S32 bit);2081 bool psBitSetTest(const psBitSet *bitSet, psU32 bit); 2075 2082 char *psBitSetToString(const psBitSet* bitSet); 2076 2083 \end{prototype} … … 2418 2425 To evaluate the polynomials at specific coordinates, we define: 2419 2426 \begin{prototype} 2420 psF64 psPolynomial1DEval(const psPolynomial2D * myPoly,2427 psF64 psPolynomial1DEval(const psPolynomial2D *poly, 2421 2428 psF64 x); 2422 psF64 psPolynomial2DEval(const psPolynomial2D * myPoly,2429 psF64 psPolynomial2DEval(const psPolynomial2D *poly, 2423 2430 psF64 x, 2424 2431 psF64 y); 2425 psF64 psPolynomial3DEval(const psPolynomial2D * myPoly,2432 psF64 psPolynomial3DEval(const psPolynomial2D *poly, 2426 2433 psF64 x, 2427 2434 psF64 y, 2428 2435 psF64 z); 2429 psF64 psPolynomial4DEval(const psPolynomial2D * myPoly,2436 psF64 psPolynomial4DEval(const psPolynomial2D *poly, 2430 2437 psF64 x, 2431 2438 psF64 y, … … 2436 2443 In the event that several evaluations are required, we also define: 2437 2444 \begin{prototype} 2438 psVector *psPolynomial1DEvalVector(const psPolynomial2D * myPoly,2445 psVector *psPolynomial1DEvalVector(const psPolynomial2D *poly, 2439 2446 const psVector *x); 2440 psVector *psPolynomial2DEvalVector(const psPolynomial2D * myPoly,2447 psVector *psPolynomial2DEvalVector(const psPolynomial2D *poly, 2441 2448 const psVector *x, 2442 2449 const psVector *y); 2443 psVector *psPolynomial3DEvalVector(const psPolynomial2D * myPoly,2450 psVector *psPolynomial3DEvalVector(const psPolynomial2D *poly, 2444 2451 const psVector *x, 2445 2452 const psVector *y, 2446 2453 const psVector *z); 2447 psVector *psPolynomial4DEvalVector(const psPolynomial2D * myPoly,2454 psVector *psPolynomial4DEvalVector(const psPolynomial2D *poly, 2448 2455 const psVector *x, 2449 2456 const psVector *y, … … 2716 2723 2717 2724 \begin{prototype} 2718 psPolynomial1D *psVectorFitPolynomial1D(psPolynomial1D * myPoly,2725 psPolynomial1D *psVectorFitPolynomial1D(psPolynomial1D *poly, 2719 2726 const psVector *mask, 2720 2727 unsigned int maskValue … … 2722 2729 const psVector *fErr 2723 2730 const psVector *x); 2724 psPolynomial2D *psVectorFitPolynomial2D(psPolynomial1D * myPoly,2731 psPolynomial2D *psVectorFitPolynomial2D(psPolynomial1D *poly, 2725 2732 const psVector *mask, 2726 2733 unsigned int maskValue … … 2729 2736 const psVector *x, 2730 2737 const psVector *y); 2731 psPolynomial3D *psVectorFitPolynomial3D(psPolynomial1D * myPoly,2738 psPolynomial3D *psVectorFitPolynomial3D(psPolynomial1D *poly, 2732 2739 const psVector *mask, 2733 2740 unsigned int maskValue … … 2737 2744 const psVector *y, 2738 2745 const psVector *z); 2739 psPolynomial4D *psVectorFitPolynomial4D(psPolynomial1D * myPoly,2746 psPolynomial4D *psVectorFitPolynomial4D(psPolynomial1D *poly, 2740 2747 const psVector *mask, 2741 2748 unsigned int maskValue … … 2748 2755 \end{prototype} 2749 2756 These functions return the polynomial that best fits the input data. 2750 The provided polynomial, \code{ myPoly}, specifies the fit order, and2757 The provided polynomial, \code{poly}, specifies the fit order, and 2751 2758 will be returnd with the best-fit coefficients. The dependent 2752 2759 variable and its error (\code{f, fErr}) are provided along with the … … 2762 2769 2763 2770 \begin{prototype} 2764 psPolynomial1D *psVectorClipFitPolynomial1D(psPolynomial1D * myPoly,2771 psPolynomial1D *psVectorClipFitPolynomial1D(psPolynomial1D *poly, 2765 2772 psStats *stats, 2766 2773 const psVector *mask, … … 2769 2776 const psVector *fErr 2770 2777 const psVector *x); 2771 psPolynomial2D *psVectorClipFitPolynomial2D(psPolynomial1D * myPoly,2778 psPolynomial2D *psVectorClipFitPolynomial2D(psPolynomial1D *poly, 2772 2779 psStats *stats, 2773 2780 const psVector *mask, … … 2777 2784 const psVector *x, 2778 2785 const psVector *y); 2779 psPolynomial3D *psVectorClipFitPolynomial3D(psPolynomial1D * myPoly,2786 psPolynomial3D *psVectorClipFitPolynomial3D(psPolynomial1D *poly, 2780 2787 psStats *stats, 2781 2788 const psVector *mask, … … 2786 2793 const psVector *y, 2787 2794 const psVector *z); 2788 psPolynomial4D *psVectorClipFitPolynomial4D(psPolynomial1D * myPoly,2795 psPolynomial4D *psVectorClipFitPolynomial4D(psPolynomial1D *poly, 2789 2796 psStats *stats, 2790 2797 const psVector *mask, … … 3075 3082 \begin{prototype} 3076 3083 psImage *psImageRotate(psImage *out, const psImage *input, float angle, 3077 psC64exposed, psImageInterpolateMode mode);3084 complex double exposed, psImageInterpolateMode mode); 3078 3085 \end{prototype} 3079 3086 Rotate the input image by given angle, specified in radians. The … … 3089 3096 \begin{prototype} 3090 3097 psImage *psImageShift(psImage *out, const psImage *input, 3091 float dx, float dy, psC64exposed, psImageInterpolateMode mode);3098 float dx, float dy, complex double exposed, psImageInterpolateMode mode); 3092 3099 \end{prototype} 3093 3100 Shift image by an arbitrary number of pixels (\code{dx,dy}) in either … … 3198 3205 3199 3206 \begin{prototype} 3200 psC64psImagePixelInterpolate(const psImage *input, float x, float y,3207 complex double psImagePixelInterpolate(const psImage *input, float x, float y, 3201 3208 const psImage *mask, unsigned int maskVal, 3202 psC64unexposedValue, psImageInterpolateMode mode);3209 complex double unexposedValue, psImageInterpolateMode mode); 3203 3210 \end{prototype} 3204 3211 Perform interpolation of image pixel values to the given fractional … … 3318 3325 3319 3326 typedef struct { 3320 int n;// Number in use3321 const int nalloc;// Number allocated3327 psU32 n; // Number in use 3328 const psU32 nalloc; // Number allocated 3322 3329 psPixelCoord *data; // The pixel coordinates 3323 3330 } psPixels; … … 3325 3332 3326 3333 \begin{prototype} 3327 psPixels *psPixelsAlloc( intnalloc);3328 psPixels *psPixelsRealloc(psPixels *pixels, intnalloc);3334 psPixels *psPixelsAlloc(psU32 nalloc); 3335 psPixels *psPixelsRealloc(psPixels *pixels, psU32 nalloc); 3329 3336 \end{prototype} 3330 3337 … … 3971 3978 typedef struct { 3972 3979 psList *list; ///< list of psMetadataItem 3973 psHash * table;///< hash table of the same metadata3980 psHash *hash; ///< hash table of the same metadata 3974 3981 } psMetadata; 3975 3982 \end{datatype} … … 4039 4046 4040 4047 \begin{prototype} 4041 bool psMetadataAddItem(psMetadata *md, const psMetadataItem *item, int location, int mode);4048 bool psMetadataAddItem(psMetadata *md, const psMetadataItem *item, psS32 location, psS32 flags); 4042 4049 bool psMetadataAdd(psMetadata *md, int location, const char *name, int format, const char *comment, ...); 4043 4050 bool psMetadataAddV(psMetadata *md, int location, const char *name, int format, const char *comment, … … 4247 4254 data type, printing is not allowed. 4248 4255 \begin{prototype} 4249 bool psMetadataItemPrint(FILE *fd, const char *format, const psMetadataItem * md);4256 bool psMetadataItemPrint(FILE *fd, const char *format, const psMetadataItem *item); 4250 4257 \end{prototype} 4251 4258 … … 4503 4510 to a complete \code{psXMLDoc} (in memory) and vice versa: 4504 4511 \begin{prototype} 4505 psXMLDoc *psMetadataToXMLDoc(const psMetadata *m etadata);4512 psXMLDoc *psMetadataToXMLDoc(const psMetadata *md); 4506 4513 psMetadata *psXMLDocToMetadata(const psXMLDoc *doc); 4507 4514 \end{prototype} … … 4518 4525 into a complete \code{psXMLDoc} (also in memory), and vice versa: 4519 4526 \begin{prototype} 4520 psXMLDoc *psXMLParseMem ory(const char *buffer, int size);4521 int psXMLDocToMem ory(const psXMLDoc *doc, char *buffer);4527 psXMLDoc *psXMLParseMem(const char *buffer, int size); 4528 int psXMLDocToMem(const psXMLDoc *doc, char *buffer); 4522 4529 \end{prototype} 4523 4530 … … 4891 4898 4892 4899 \begin{prototype} 4893 void *psFitsReadTableRowRaw( const int *nBytes, const psFits *fits, int row);4900 void *psFitsReadTableRowRaw(size_t *size, const psFits *fits, int row); 4894 4901 \end{prototype} 4895 4902 This function reads a single row of the table in the extension pointed 4896 4903 at by the \code{psFits} file pointer. The row number to be read is 4897 4904 given by \code{row}. The result is returned as collection of 4898 \code{ nBytes} bytes allocated by the function. The function must4905 \code{size} bytes allocated by the function. The function must 4899 4906 apply the needed byte-swapping on the data in the row based on the 4900 4907 description of the table data in the table header. \tbr{we may need … … 4923 4930 4924 4931 \begin{prototype} 4925 psArray *psFitsReadTableRaw( int *nBytes, const psFits *fits);4932 psArray *psFitsReadTableRaw(size_t *size, const psFits *fits); 4926 4933 \end{prototype} 4927 4934 This function reads the entire data block from a table into the a 4928 4935 \code{psArray}, with one element of the array per row. The number of 4929 bytes per row is returned in \code{ nBytes}. The function must apply4936 bytes per row is returned in \code{size}. The function must apply 4930 4937 the needed byte-swapping on the data in each row based on the 4931 4938 description of the table data in the table header. … … 5044 5051 5045 5052 \begin{prototype} 5046 psF64 *psTimeToLMST(psTime *time, psF64longitude);5053 double psTimeToLMST(psTime *time, double longitude); 5047 5054 \end{prototype} 5048 5055 … … 5109 5116 5110 5117 \begin{prototype} 5111 psTime *psTimeFromJD(double input);5112 psTime *psTimeFromMJD(double input);5113 psTime *psTimeFromISO(const char *input, psTimeType t imeSystem);5118 psTime *psTimeFromJD(double jd); 5119 psTime *psTimeFromMJD(double mjd); 5120 psTime *psTimeFromISO(const char *input, psTimeType type); 5114 5121 psTime *psTimeFromTimeval(const timeval *input); 5115 5122 psTime *psTimeFromUTC(psS64 sec, psU32 nsec, bool leapsecond); … … 5124 5131 5125 5132 \begin{prototype} 5126 psTime *psTimeMath(const psTime *time, psF64delta);5127 psF64psTimeDelta(const psTime *time1, const psTime *time2);5133 psTime *psTimeMath(const psTime *time, double delta); 5134 double psTimeDelta(const psTime *time1, const psTime *time2); 5128 5135 \end{prototype} 5129 5136
Note:
See TracChangeset
for help on using the changeset viewer.
