Index: /trunk/doc/pslib/ChangeLogSDRS.tex
===================================================================
--- /trunk/doc/pslib/ChangeLogSDRS.tex	(revision 3953)
+++ /trunk/doc/pslib/ChangeLogSDRS.tex	(revision 3954)
@@ -1,3 +1,3 @@
-%%% $Id: ChangeLogSDRS.tex,v 1.99 2005-05-17 00:18:46 jhoblitt Exp $
+%%% $Id: ChangeLogSDRS.tex,v 1.100 2005-05-17 04:06:00 price Exp $
 
 \subsection{Changes from version 00 to version 01}
@@ -581,13 +581,33 @@
 \begin{itemize}
 \item Bug 393:
-    \begin{itemize}
-    \item add \code{PS_META_TIME} to \code{psMetadataType}
-    \item change \code{psTimeFromISO()} to accept a \code{psTimeType} to specifiy
+  \begin{itemize}
+  \item add \code{PS_META_TIME} to \code{psMetadataType}
+  \item change \code{psTimeFromISO()} to accept a \code{psTimeType} to specifiy
     what time system the generated psTime object should be set to
-    \end{itemize}
+  \end{itemize}
 \item changes to ``Database Functions''
-    \begin{itemize}
-    \item change \code{psDBCreateTable()}'s definition to be clear about how to combine indexes and auto-increment
-    \item add \code{p_psDBRunQuery()}
-    \end{itemize}
-\end{itemize}
+  \begin{itemize}
+  \item change \code{psDBCreateTable()}'s definition to be clear about how to combine indexes and auto-increment
+  \item add \code{p_psDBRunQuery()}
+  \end{itemize}
+\item \code{psLibInit} does not seed the RNG (done in \code{psRandom}).
+\item Updated metadata iteration to use \code{psMetadataIterator}.
+\item Restoring \code{nbuckets} to \code{psHashAlloc}, since it appears to be required by the code.
+\item Adding \code{psArrayGet} and \code{psArraySet} since these are in the code.
+\item \code{psMatrixEigenvectors} returns type \code{psImage} (not a single vector).
+\item Specify that \code{col0,row0} shall be preserved with \code{psImageCopy}.
+\item Added functions \code{psErrorGetStackSize},
+  \code{psVectorRecycle}, \code{psVectorCopy},
+  \code{psMetadataItemAllocStr}, \code{psMetadataItemAllocF32},
+  \code{psMetadataItemAllocF64}, \code{psMetadataItemAllocS32},
+  \code{psMetadataItemAllocBool}, \code{psMetadataAddS32},
+  \code{psMetadataAddF32}, \code{psMetadataAddF64},
+  \code{psMetadataAddList}, \code{psMetadataAddStr},
+  \code{psMetadataAddVector}, \code{psMetadataAddImage},
+  \code{psMetadataAddHash}, \code{psMetadataAddLookupTable},
+  \code{psMetadataAddUnknown}, \code{psMetadataLookupF32},
+  \code{psBitSetClear} already implemented.
+\end{itemize}
+
+
+
Index: /trunk/doc/pslib/psLibSDRS.tex
===================================================================
--- /trunk/doc/pslib/psLibSDRS.tex	(revision 3953)
+++ /trunk/doc/pslib/psLibSDRS.tex	(revision 3954)
@@ -1,3 +1,3 @@
-%%% $Id: psLibSDRS.tex,v 1.223 2005-05-17 00:18:46 jhoblitt Exp $
+%%% $Id: psLibSDRS.tex,v 1.224 2005-05-17 04:06:00 price Exp $
 \documentclass[panstarrs,spec]{panstarrs}
 
@@ -1088,4 +1088,5 @@
 %
 \begin{verbatim}
+unsigned int psErrorGetStackSize(void);
 const psErr *psErrorGet(int which);
 const psErr *psErrorLast(void);
@@ -1093,13 +1094,14 @@
 \end{verbatim}
 
-The entire error stack may be printed to an open file descriptor by
-calling \code{psErrorStackPrint} (or \code{psErrorStackPrintV}); if
-and only if there are current errors, the printf-style string
-\code{fmt} is first printed to the file descriptor \code{fd}. In this
-printout, error codes must be replaced by their string equivalents as
-defined in the next section.  Note that these are also available in
-the \code{psErr} structure. The successive lines of the traceback
-should be indented by an additional space.  \code{psErrorStackPrintV}
-must not invoke \code{va_end}.
+\code{psErrorGetStackSize} shall return the number of errors on the
+stack.  The entire error stack may be printed to an open file
+descriptor by calling \code{psErrorStackPrint} (or
+\code{psErrorStackPrintV}); if and only if there are current errors,
+the printf-style string \code{fmt} is first printed to the file
+descriptor \code{fd}. In this printout, error codes must be replaced
+by their string equivalents as defined in the next section.  Note that
+these are also available in the \code{psErr} structure. The successive
+lines of the traceback should be indented by an additional space.
+\code{psErrorStackPrintV} must not invoke \code{va_end}.
 %
 \begin{verbatim}
@@ -1379,4 +1381,5 @@
 psVector *psVectorAlloc(int nalloc, psElemType type);
 psVector *psVectorRealloc(psVector *vector, int nalloc);
+psVector *psVectorRecycle(psVector *vector, int nalloc, psElemType type);
 \end{verbatim}
 %
@@ -1391,5 +1394,11 @@
 current value of \code{psVector.n}, \code{psVector.n} is left intact.
 If the value of \code{vector} is \code{NULL}, then
-\code{psVectorRealloc} must return an error.
+\code{psVectorRealloc} must generate an error.
+
+\code{psVectorRecycle} shall recycle the input \code{vector}, such
+that the output \code{psVector} matches the length required for
+\code{nalloc} elements of the specified \code{type}.  In the event
+that the input \code{vector} is \code{NULL}, a new \code{psVector}
+shall be allocated and returned.
 
 \begin{verbatim}
@@ -1421,4 +1430,14 @@
 that there will be room on the next loop for \code{nExtend} new
 elements, as in this example.
+
+\begin{verbatim}
+psVector *psVectorCopy(psVector *output, psVector *input, psElemType type);
+\end{verbatim}
+
+\code{psVectorCopy} shall copy the elements in the \code{input} vector
+to the \code{output} vector, casting to the specified \code{type}.  In
+the event that the \code{output} is \code{NULL}, a new \code{psVector}
+shall be allocated.  The returned \code{psVector} shall be of the
+given \code{type}.
 
 \subsection{Simple Images}
@@ -2023,4 +2042,5 @@
 \begin{verbatim}
 psBitSet *psBitSetSet(psBitSet *myBits, int bit);
+psBitSet* psBitSetClear(psBitSet* inBits, int bit);
 psBitSet *psBitSetOp(psBitSet *outBits, const psBitSet *inBits1, char *operator, const psBitSet *inBits2);
 psBitSet *psBitSetNot(psBitSet *out, psBitSet *in);
@@ -2032,4 +2052,7 @@
 \code{psBitSet}, and returns the updated bitset.  The input bitset
 will be modified.
+
+\code{psBitSetClear} clears the specified \code{bit} in the \code{inBits}
+and returns the updated bitset.  The input bitset will be modified.
 
 \code{psBitSetOp} returns the \code{psBitSet} that is the result of
@@ -3833,4 +3856,14 @@
 created to hold future entries of that keyword.
 
+As a convenience to the user, the following type-specific functions are
+also defined:
+\begin{verbatim}
+psMetadataItem* psMetadataItemAllocStr(const char* name, const char* comment, const char* value);
+psMetadataItem* psMetadataItemAllocF32(const char* name, const char* comment, psF32 value);
+psMetadataItem* psMetadataItemAllocF64(const char* name, const char* comment, psF64 value);
+psMetadataItem* psMetadataItemAllocS32(const char* name, const char* comment, psS32 value);
+psMetadataItem* psMetadataItemAllocBool(const char* name, const char* comment, psBool value);
+\end{verbatim}
+
 \subsubsection{Metadata APIs}
 
@@ -3971,4 +4004,27 @@
 \end{verbatim}
 
+As a convenience to the user, the following type-specific functions
+are specified:
+\begin{verbatim}
+psBool psMetadataAddS32(psMetadata* md, psS32 location, const char* name, const char* comment, psS32 value);
+psBool psMetadataAddF32(psMetadata* md, psS32 location, const char* name, const char* comment, psF32 value);
+psBool psMetadataAddF64(psMetadata* md, psS32 location, const char* name, const char* comment, psF64 value);
+psBool psMetadataAddList(psMetadata* md, psS32 location, const char* name, const char* comment,
+                         psList* value);
+psBool psMetadataAddStr(psMetadata* md, psS32 location, const char* name, const char* comment,
+                        const char* value);
+psBool psMetadataAddVector(psMetadata* md, psS32 location, const char* name, const char* comment,
+                           psVector* value);
+psBool psMetadataAddImage(psMetadata* md, psS32 location, const char* name, const char* comment,
+                          psImage* value);
+psBool psMetadataAddHash(psMetadata* md, psS32 location, const char* name, const char* comment,
+                         psHash* value);
+psBool psMetadataAddLookupTable(psMetadata* md, psS32 location, const char* name, const char* comment,
+                                psLookupTable* value);
+psBool psMetadataAddUnknown(psMetadata* md, psS32 location, const char* name, const char* comment,
+                            psPtr value);
+\end{verbatim}
+
+
 Items may be removed from the metadata by specifying a key or a
 location in the list.  If the value of \code{name} is \code{NULL}, the
@@ -3999,4 +4055,5 @@
 void *psMetadataLookupPtr(bool *status, const psMetadata *md, const char *key);
 psS32 psMetadataLookupS32(bool *status, const psMetadata *md, const char *key);
+psF32 psMetadataLookupF32(bool *status, const psMetadata *md, const char *key);
 psF64 psMetadataLookupF64(bool *status, const psMetadata *md, const char *key);
 \end{verbatim}
