*vsy_PropSetBegin - create an instance of a PropSet object vsy_PropSetEnd - destroy an instance of a PropSet object vsy_PropSetError - return PropSet object error flag vsy_PropSetCopy - make a copy of a PropSet object
vsy_PropSetDef - suggest number of properties Inq - get current storage capacity vsy_PropSetCount - get number of contained properties vsy_PropSetInsert - place property in the property set vsy_PropSetLookup - return property parameters by name vsy_PropSetLookupDouble - return double property by name vsy_PropSetLookupFloat - return float property by name vsy_PropSetLookupInteger - return integer property by name vsy_PropSetLookupObject - return object property by name vsy_PropSetLookupString - return string property by name vsy_PropSetRemove - remove any property with the specified name vsy_PropSetClear - remove all properties from a PropSet vsy_PropSetInitIter - prepare to successively visit each property vsy_PropSetNextIter - return the next property name in the set
Each new property is placed in the property set by calling vsy_PropSetInserti, vsy_PropSetInsertfv, etc. depending upon the property type. The total number of properties contained in the property set may be found with vsy_PropSetCount. The property with a specified name may be found by calling vsy_PropSetLookupInteger, vsy_PropSetLookupFloat, etc. The property parameters such as data type, size, etc. may be returned using vsy_PropSetLookup. A property may be removed using vsy_PropSetRemove. The method vsy_PropSetClear removes all properties from the property set.
Each property in the property set may be processed with an "iterator" construct. The pair of methods vsy_PropSetInitIter and vsy_PropSetNextIter are used to visit each property name using a loop. Call the first method before the body of the loop to prepare the PropSet object for the iteration. Within the loop body, call vsy_PropSetNextIter. It will return the name of a property each time it is called. It will return a NULL pointer when all of the properties have been visited.
*vsy_PropSetBegin - create an instance of an PropSet object
vsy_PropSet *vsy_PropSetBegin ()
None
Destroy an instance of a PropSet object using
void vsy_PropSetEnd (vsy_PropSet *propset)
Return the current value of a PropSet object error flag using
Vint vsy_PropSetError (vsy_PropSet *propset)Make a copy of a PropSet object. The private data from the frompropset object is copied to the propset object. Any previous private data in propset is lost.
void vsy_PropSetCopy (vsy_PropSet *propset, vsy_PropSet *frompropset)
vsy_PropSetDef - define initial size
void vsy_PropSetDef (vsy_PropSet *propset, Vint numobj)
propset Pointer to PropSet object. numobj Estimated number of objects to be held.
None
Find the number of properties which may be managed by the currently allocated internal storage of a PropSet using
void vsy_PropSetInq (const vsy_PropSet *propset, Vint *numobj,
vsy_PropSetCount - get number of contained properties
void vsy_PropSetCount (const vsy_PropSet *propset, Vint *num)
propset Pointer to PropSet object.
num Number of properties held the in PropSet object.
vsy_PropSetInsert - place a property in the property set
void vsy_PropSetInsertc (vsy_PropSet *propset, const Vchar *name, Vchar *cprop) void vsy_PropSetInsertd (vsy_PropSet *propset, const Vchar *name, Vdouble dprop) void vsy_PropSetInsertf (vsy_PropSet *propset, const Vchar *name, Vfloat fprop) void vsy_PropSetInserti (vsy_PropSet *propset, const Vchar *name, Vint iprop) void vsy_PropSetInsertp (vsy_PropSet *propset, const Vchar *name, Vobject *pprop) void vsy_PropSetInsertdv (vsy_PropSet *propset, const Vchar *name, Vint num, Vdouble dprop[]) void vsy_PropSetInsertfv (vsy_PropSet *propset, const Vchar *name, Vint num, Vfloat fprop[]) void vsy_PropSetInsertiv (vsy_PropSet *propset, const Vchar *name, Vint num, Vint iprop[]) void vsy_PropSetInsertpv (vsy_PropSet *propset, const Vchar *name, Vint num, Vobject *pprop[])
propset Pointer to PropSet object. name String which identifies the property. num Number of properties in vector prop Value or property or vector of properties
None
vsy_PropSetLookup - return property parameters by name
void vsy_PropSetLookup (const vsy_PropSet *propset, const Vchar *name, Vint *type, Vint *num, Vint *size)
propset Pointer to PropSet object. name Name of the desired property.
type Data type of property =SYS_DOUBLE type Vdouble =SYS_FLOAT type Vfloat =SYS_INTEGER type Vint =SYS_OBJECT type Vobject* =SYS_STRING type Vchar* num Number of data items in property size Size of of data items in property
vsy_PropSetLookupDouble - return property parameters by name
void vsy_PropSetLookupDouble (const vsy_PropSet *propset, const Vchar *name, Vdouble dprop[]), void vsy_PropSetLookupFloat (const vsy_PropSet *propset, const Vchar *name, Vfloat fprop[]), void vsy_PropSetLookupInteger (const vsy_PropSet *propset, const Vchar *name, Vint iprop[]), void vsy_PropSetLookupObject (const vsy_PropSet *propset, const Vchar *name, Vobject *pprop[]), void vsy_PropSetLookupString (const vsy_PropSet *propset, const Vchar *name, Vchar cprop[]),
propset Pointer to PropSet object. name Name of the desired property.
prop Returned properties
vsy_PropSetRemove - remove a property from the property set
void vsy_PropSetRemove (vsy_PropSet *propset, const Vchar *name)
propset Pointer to PropSet object. name Name of the property to be removed.
None
Remove all the properties from a PropSet object using
void vsy_PropSetClear (vsy_PropSet *propset)
vsy_PropSetNextIter,vsy_PropSetInitIter - process each item in the propset
void vsy_PropSetInitIter (vsy_PropSet *propset) void vsy_PropSetNextIter (vsy_PropSet *propset, Vchar **name)
propset Pointer to PropSet object.
name Name of the next property.
*vsy_RandomBegin - create an instance of a Random object vsy_RandomEnd - destroy an instance of a Random object vsy_RandomError - return Random object error flag
vsy_RandomInit - set random number seed vsy_RandomNumber - generate random number
*vsy_RandomBegin - create an instance of an Random object
vsy_Random *vsy_RandomBegin ()
None
Destroy an instance of a Random object using
void vsy_RandomEnd (vsy_Random *random)
Return the current value of a Random object error flag using
Vint vsy_RandomError (vsy_Random *random)
vsy_RandomInit - set random number seed
void vsy_RandomInit (vsy_Random *random, Vint seed)
random Pointer to Random object. seed Random number seed.
None
vsy_RandomNumber - generate random number
void vsy_RandomNumber (vsy_Random *random, Vfloat *number)
random Pointer to Random object.
number Random number
*vsy_DataTableBegin - create an instance of a DataTable object vsy_DataTableEnd - destroy an instance of a DataTable object vsy_DataTableError - return DataTable object error flag
vsy_DataTableDef - define number of stored vectors and length Inq - get current number of vectors and length vsy_DataTableClear - remove all vectors from the DataTable object vsy_DataTableCount - get number of inserted vectors vsy_DataTableEval - interpolate vectors at specified value vsy_DataTableEvalGrad - interpolate vectors and gradients at value vsy_DataTableInsert - insert vector at specified value vsy_DataTableLookup - find the vector inserted at a specified value vsy_DataTableForEach - call a function one time for each vector vsy_DataTableInitIter - prepare to successively visit each vector vsy_DataTableNextIter - return the next vector vsy_DataTableSetParami - type of interpolation and extrapolation
Each new vector and the associated value of the independent variable are placed in the data table using vsy_DataTableInsert. The DataTable module does not copy the vector data, it only stores the pointer to the vector and the value of the associated independent variable. Two vectors may not be stored at the same value of the associated independent variable. The total number of vectors contained in the data table may be found by calling vsy_DataTableCount. A vector which is inserted with a specified value of the independent variable may be retrieved using vsy_DataTableLookup. The function vsy_DataTableClear removes all vectors from the data table. Use the function vsy_DataTableEval to interpolate or extrapolate the vector data for a given value of the independent variable. The type of interpolation and extrapolation to be performed is defined using vsy_DataTableSetParami. Use vsy_DataTableEvalGrad to compute the function gradients as well.
Each vector in the data table may be processed with an "iterator" construct. The method vsy_DataTableForEach takes a function as its argument and calls that function repeatedly, each time with a vector from the data table. The pair of methods vsy_DataTableInitIter and vsy_DataTableNextIter are used to visit each independent variable, vector pair using a loop. Call the first method before the body of the loop to prepare the DataTable object for the iteration. Within the loop body, call vsy_DataTableNextIter. It will return a double precision value of the independent variable and a pointer to the vector each time it is called. It will return zero and a NULL pointer when all of the vectors have been processed.
*vsy_DataTableBegin - create an instance of a DataTable object
vsy_DataTable *vsy_DataTableBegin ()
None
Destroy an instance of a DataTable object using
void vsy_DataTableEnd (vsy_DataTable *datatable)
Return the current value of a DataTable object error flag using
Vint vsy_DataTableError (vsy_DataTable *datatable)
vsy_DataTableDef - define number of stored vectors and length
void vsy_DataTableDef (vsy_DataTable *datatable, Vint numobj, Vint length)
datatable Pointer to DataTable object. numobj Estimated number of vectors to be held. length Number of values in each double precision vector
None
Find the number and length of vectors which may be managed with the presently allocated storage using
void vsy_DataTableInq (const vsy_DataTable *datatable, Vint *numobj, Vint *length)
vsy_DataTableCount - get number of contained vectors
void vsy_DataTableCount (const vsy_DataTable *datatable, Vint *num)
datatable Pointer to DataTable object.
num Number of vectors held the in DataTable object.
vsy_DataTableEval - interpolate vectors at specified value
void vsy_DataTableEval (vsy_DataTable *datatable, Vdouble value, Vdouble vec[])
datatable Pointer to DataTable object. value Double precision independent variable
vec Vector data evaluated at value
vsy_DataTableEvalGrad - interpolate vectors and gradients at specified value
void vsy_DataTableEvalGrad (vsy_DataTable *datatable, Vdouble value, Vdouble vec[], Vdouble grad[])
datatable Pointer to DataTable object. value Double precision independent variable
vec Vector data evaluated at value grad Gradient data evaluated at value
vsy_DataTableInsert - insert vector at specified value
void vsy_DataTableInsert (vsy_DataTable *datatable, Vdouble value, Vdouble *vec)
datatable Pointer to DataTable object. value Double precision independent variable vec Pointer to vector
None
vsy_DataTableLookup - find the vector inserted at a specified value
void vsy_DataTableLookup (const vsy_DataTable *datatable, Vdouble value, Vdouble **vec)
datatable Pointer to DataTable object. value Double precision independent variable
vec Pointer to vector associated with value
vsy_DataTableClear - remove all vectors from the DataTable object
void vsy_DataTableClear (vsy_DataTable *datatable)
datatable Pointer to DataTable object.
None
vsy_DataTableForEach - call a function one time for each vector
void vsy_DataTableForEach (vsy_DataTable *datatable, void (*func)(Vobject*))
datatable Pointer to DataTable object. func Pointer to function which is to be applied to each vector.
None
Sequential access to each vector in the data table may also be implemented using
void vsy_DataTableInitIter (vsy_DataTable *datatable)
This is followed by repeated calls to the method
void vsy_DataTableNextIter (vsy_DataTable *datatable, Vdouble *value Vdouble **vec)Each call of the method vsy_DataTableNextIter will return a new vector from the data table, together with its associated value. These value/vec pairs are visited in ascending order of the values. After every vector has been visited in this manner, vsy_DataTableNextIter will return a value of zero and a NULL pointer until the iteration is restarted using vsy_DataTableInitIter.
vsy_DataTableSetParami - specify type of interpolation and extrapolation
void vsy_DataTableSetParami (vsy_DataTable *datatable, Vint ptype, Vint iparam)
datatable Pointer to DataTable object. ptype Type of parameter to set =DATATABLE_EXTRAPOLATE Extrapolation method =DATATABLE_INTERPOLATE Interpolation method iparam Specifies the integer value that ptype will be set to. =DATATABLE_LINEAR Linear interpolation, extrapolation =DATATABLE_CLAMP Clamp to extremes extrapolation =DATATABLE_PARABOLIC_SLOPE Parabolic slope extrapolation
None
The DATATABLE_INTERPOLATE parameter sets the interpolation method. Currently the only interpolation method implemented is DATATABLE_LINEAR. The default DATATABLE_INTERPOLATE is DATATABLE_LINEAR.
*vsy_ConcatBegin - create an instance of a Concat object vsy_ConcatEnd - destroy an instance of a Concat object vsy_ConcatError - return Concat object error flag
vsy_ConcatDef - define total number of bytes to be stored Inq - get current number of bytes stored vsy_ConcatClear - delete all data records vsy_ConcatCount - get number of added records vsy_ConcatAdd - add a data record of arbitrary length vsy_ConcatRef - return last addition pointer vsy_ConcatInitIter - prepare to successively visit each record vsy_ConcatNextIter - return the next record and length
The pair of methods vsy_ConcatInitIter and vsy_ConcatNextIter are used to visit each data record using a loop. Call the first method before the body of the loop to prepare the Concat object for the iteration. Within the loop body, call vsy_ConcatNextIter. It will return a number of bytes and pointer to the start of the data record each time it is called. It will return zero and a NULL pointer when all of the records have been processed. All data may be deleted using vsy_ConcatClear.
*vsy_ConcatBegin - create an instance of a Concat object
vsy_Concat *vsy_ConcatBegin ()
None
Destroy an instance of a Concat object using
void vsy_ConcatEnd (vsy_Concat *concat)
Return the current value of a Concat object error flag using
Vint vsy_ConcatError (vsy_Concat *concat)
vsy_ConcatDef - define total number of bytes to be stored
void vsy_ConcatDef (vsy_Concat *concat, Vlong maxbytes)
concat Pointer to Concat object. maxbytes Estimated number of bytes to be held.
None
Find the number of bytes presently stored using
void vsy_ConcatInq (const vsy_Concat *concat, Vlong *maxbytes)
vsy_ConcatClear - delete all data records
void vsy_ConcatClear (vsy_Concat *concat)
concat Pointer to Concat object.
None
vsy_ConcatCount - get number of added records
void vsy_ConcatCount (vsy_Concat *concat, Vint *num)
concat Pointer to Concat object.
num Number of added data records
vsy_ConcatAdd - add a data record of arbitrary length
void vsy_ConcatAdd (vsy_Concat *concat, Vint nbytes, void *data)
concat Pointer to Concat object. nbytes Number of bytes in data data Pointer to data to copy to concatenation
None
vsy_ConcatRef - return last addition pointer
void vsy_ConcatRef (vsy_Concat *concat, void **data)
concat Pointer to Concat object.
data Pointer to last data addition address in concatention
vsy_ConcatNextIter,vsy_ConcatInitIter - process each record in concatenation
void vsy_ConcatInitIter (vsy_Concat *concat) void vsy_ConcatNextIter (vsy_Concat *concat, Vint *nbytes, void **data)
concat Pointer to Concat object.
nbytes Number of bytes in data data Pointer to data in concatenation
*vsy_LinkListBegin - create an instance of a LinkList object vsy_LinkListEnd - destroy an instance of a LinkList object vsy_LinkListError - return LinkList object error flag
vsy_LinkListDef - define length of records Inq - get current number of records and length vsy_LinkListClear - delete all data records vsy_LinkListCount - get number of records vsy_LinkListAdd - add a data record to linked list vsy_LinkListRef - return pointer given index vsy_LinkListRemove - delete a record given index vsy_LinkListHead - return head record index and pointer vsy_LinkListInitIter - prepare to successively visit each record vsy_LinkListNextIter - return the next record index and pointer
The pair of methods vsy_LinkListInitIter and vsy_LinkListNextIter are used to visit each data record using a loop. Call the first method before the body of the loop to prepare the LinkList object for the iteration. Within the loop body, call vsy_LinkListNextIter. It will return an integer index and pointer to the start of the data record each time it is called. It will return zero and a NULL pointer when all of the records have been processed. All data may be deleted using vsy_LinkListClear.
*vsy_LinkListBegin - create an instance of a LinkList object
vsy_LinkList *vsy_LinkListBegin ()
None
Destroy an instance of a LinkList object using
void vsy_LinkListEnd (vsy_LinkList *linklist)
Return the current value of a LinkList object error flag using
Vint vsy_LinkListError (vsy_LinkList *linklist)
vsy_LinkListDef - define length of records
void vsy_LinkListDef (vsy_LinkList *linklist, Vint len, Vint nbytes)
linklist Pointer to LinkList object. len Approximate number of records nbytes Length of each record in bytes
None
Find the number of records currently allocated and the fixed length of each record in bytes using
void vsy_LinkListInq (const vsy_LinkList *linklist, Vint *len, Vint *nbytes)
vsy_LinkListClear - delete all data records
void vsy_LinkListClear (vsy_LinkList *linklist)
linklist Pointer to LinkList object.
None
vsy_LinkListCount - get number of records
void vsy_LinkListCount (vsy_LinkList *linklist, Vint *num)
linklist Pointer to LinkList object.
num Number of data records
vsy_LinkListAdd - add a data record to linked list
void vsy_LinkListAdd (vsy_LinkList *linklist, Vint *index, void **value)
linklist Pointer to LinkList object.
index Index of record value Pointer to memory associated with index.
vsy_LinkListRef - return pointer given index
void vsy_LinkListRef (vsy_LinkList *linklist, Vint index, void **value)
linklist Pointer to LinkList object. index Index of record
value Pointer to memory associated with index.
vsy_LinkListRemove - delete a record given index
void vsy_LinkListRemove (vsy_LinkList *linklist, Vint index)
linklist Pointer to LinkList object. index Index of record
None
vsy_LinkListHead - return head record index and pointer
void vsy_LinkListHead (vsy_LinkList *linklist, Vint *index, void **value)
linklist Pointer to LinkList object.
index Index of record value Pointer to memory associated with index.
vsy_LinkListNextIter,vsy_LinkListInitIter - process each record in linked list
void vsy_LinkListInitIter (vsy_LinkList *linklist) void vsy_LinkListNextIter (vsy_LinkList *linklist, Vint *index, void **value)
linklist Pointer to LinkList object.
index Index of record value Pointer to memory associated with index.
The StrUtil module supports the following functions.
vut_StrUtilFromUTF8 - convert UTF-8 string to wide character vut_StrUtilToUTF8 - convert wide character string to UTF-8 vut_StrUtilLenUTF8 - determine character length of UTF-8 string vut_StrUtilMBCSFromUTF8 - convert UTF-8 string to MBCS
vut_StrUtilFromUTF8 - convert UTF-8 string to wide character
Vint vut_StrUtilFromUTF8 (const char *utf8buf, Vint maxwidechar, wchar_t* widebuf)
utf8buf UTF-8 encoded string maxwidechar Maximum number of wide characters.
widebuf Wide character encoded string
vut_StrUtilToUTF8 - convert wide character string to UTF-8
Vint vut_StrUtilToUTF8 (const wchar_t *widebuf, Vint maxutf8char, char *utf8buf)
widebuf Wide character encoded string maxutf8char Maximum number of UTF-8 characters.
utf8buf UTF-8 encoded string
vut_StrUtilLenUTF8 - determine character length of UTF-8 string
Vint vut_StrUtilLenUTF8 (const char *utf8buf)
utf8buf UTF-8 encoded string
None
vut_StrUtilMBCSFromUTF8 - convert UTF-8 string to MBCS
Vint vut_StrUtilMBCSFromUTF8 (const char *utf8buf, Vint maxMBCSchar, Vuchar* mbcs)
utf8buf UTF-8 encoded string maxMBCSchar Maximum number of MBCS characters.
mbcs MBCS string