/build/buildd/coinutils-2.5.1/CoinUtils/src/CoinHelperFunctions.hpp File Reference

#include <unistd.h>
#include <cstdlib>
#include <cstdio>
#include "CoinError.hpp"
#include "CoinFinite.hpp"
Include dependency graph for CoinHelperFunctions.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  CoinThreadRandom
 Class for thread specific random numbers. More...

Defines

#define COIN_OWN_RANDOM_32

Functions

template<class T >
void CoinCopyN (register const T *from, const int size, register T *to)
 This helper function copies an array to another location using Duff's device (for a speedup of ~2).
template<class T >
void CoinCopy (register const T *first, register const T *last, register T *to)
 This helper function copies an array to another location using Duff's device (for a speedup of ~2).
template<class T >
void CoinDisjointCopyN (register const T *from, const int size, register T *to)
 This helper function copies an array to another location.
template<class T >
void CoinDisjointCopy (register const T *first, register const T *last, register T *to)
 This helper function copies an array to another location.
template<class T >
T * CoinCopyOfArray (const T *array, const int size)
 Return an array of length size filled with input from array, or null if array is null.
template<class T >
T * CoinCopyOfArrayPartial (const T *array, const int size, const int copySize)
 Return an array of length size filled with first copySize from array, or null if array is null.
template<class T >
T * CoinCopyOfArray (const T *array, const int size, T value)
 Return an array of length size filled with input from array, or filled with (scalar) value if array is null.
template<class T >
T * CoinCopyOfArrayOrZero (const T *array, const int size)
 Return an array of length size filled with input from array, or filled with zero if array is null.
template<class T >
void CoinMemcpyN (register const T *from, const int size, register T *to)
 This helper function copies an array to another location.
template<class T >
void CoinMemcpy (register const T *first, register const T *last, register T *to)
 This helper function copies an array to another location.
template<class T >
void CoinFillN (register T *to, const int size, register const T value)
 This helper function fills an array with a given value.
template<class T >
void CoinFill (register T *first, register T *last, const T value)
 This helper function fills an array with a given value.
template<class T >
void CoinZeroN (register T *to, const int size)
 This helper function fills an array with zero.
void CoinCheckDoubleZero (double *to, const int size)
 This Debug helper function checks an array is all zero.
void CoinCheckIntZero (int *to, const int size)
 This Debug helper function checks an array is all zero.
template<class T >
void CoinZero (register T *first, register T *last)
 This helper function fills an array with a given value.
char * CoinStrdup (const char *name)
 Returns strdup or NULL if original NULL.
template<class T >
CoinMax (register const T x1, register const T x2)
 Return the larger (according to operator<() of the arguments.
template<class T >
CoinMin (register const T x1, register const T x2)
 Return the smaller (according to operator<() of the arguments.
template<class T >
CoinAbs (const T value)
 Return the absolute value of the argument.
template<class T >
bool CoinIsSorted (register const T *first, const int size)
 This helper function tests whether the entries of an array are sorted according to operator<.
template<class T >
bool CoinIsSorted (register const T *first, register const T *last)
 This helper function tests whether the entries of an array are sorted according to operator<.
template<class T >
void CoinIotaN (register T *first, const int size, register T init)
 This helper function fills an array with the values init, init+1, init+2, etc.
template<class T >
void CoinIota (T *first, const T *last, T init)
 This helper function fills an array with the values init, init+1, init+2, etc.
template<class T >
T * CoinDeleteEntriesFromArray (register T *arrayFirst, register T *arrayLast, const int *firstDelPos, const int *lastDelPos)
 This helper function deletes certain entries from an array.
double CoinDrand48 (bool isSeed=false, unsigned int seed=1)
 Return random number between 0 and 1.
void CoinSeedRandom (int iseed)
 Seed random number generator.
char CoinFindDirSeparator ()
 This function figures out whether file names should contain slashes or backslashes as directory separator.
int CoinStrNCaseCmp (const char *s0, const char *s1, const size_t len)
template<class T >
void CoinSwap (T &x, T &y)
 Swap the arguments.
template<class T >
int CoinToFile (const T *array, int size, FILE *fp)
 This helper function copies an array to file Returns 0 if OK, 1 if bad write.
template<class T >
int CoinFromFile (T *&array, int size, FILE *fp, int &newSize)
 This helper function copies an array from file and creates with new.
double CoinCbrt (double x)
 Cube Root.

Define Documentation

#define COIN_OWN_RANDOM_32

Definition at line 719 of file CoinHelperFunctions.hpp.


Function Documentation

template<class T >
void CoinCopyN ( register const T *  from,
const int  size,
register T *  to 
) [inline]

This helper function copies an array to another location using Duff's device (for a speedup of ~2).

The arrays are given by pointers to their first entries and by the size of the source array. Overlapping arrays are handled correctly.

Definition at line 26 of file CoinHelperFunctions.hpp.

template<class T >
void CoinCopy ( register const T *  first,
register const T *  last,
register T *  to 
) [inline]

This helper function copies an array to another location using Duff's device (for a speedup of ~2).

The source array is given by its first and "after last" entry; the target array is given by its first entry. Overlapping arrays are handled correctly.

Definition at line 76 of file CoinHelperFunctions.hpp.

template<class T >
void CoinDisjointCopyN ( register const T *  from,
const int  size,
register T *  to 
) [inline]

This helper function copies an array to another location.

The two arrays must not overlap (otherwise an exception is thrown). For speed 8 entries are copied at a time. The arrays are given by pointers to their first entries and by the size of the source array.

Note JJF - the speed claim seems to be false on IA32 so I have added CoinMemcpyN which can be used for atomic data

Definition at line 91 of file CoinHelperFunctions.hpp.

template<class T >
void CoinDisjointCopy ( register const T *  first,
register const T *  last,
register T *  to 
) [inline]

This helper function copies an array to another location.

The two arrays must not overlap (otherwise an exception is thrown). For speed 8 entries are copied at a time. The source array is given by its first and "after last" entry; the target array is given by its first entry.

Definition at line 142 of file CoinHelperFunctions.hpp.

template<class T >
T* CoinCopyOfArray ( const T *  array,
const int  size 
) [inline]

Return an array of length size filled with input from array, or null if array is null.

Definition at line 155 of file CoinHelperFunctions.hpp.

template<class T >
T* CoinCopyOfArrayPartial ( const T *  array,
const int  size,
const int  copySize 
) [inline]

Return an array of length size filled with first copySize from array, or null if array is null.

Definition at line 172 of file CoinHelperFunctions.hpp.

template<class T >
T* CoinCopyOfArray ( const T *  array,
const int  size,
value 
) [inline]

Return an array of length size filled with input from array, or filled with (scalar) value if array is null.

Definition at line 189 of file CoinHelperFunctions.hpp.

template<class T >
T* CoinCopyOfArrayOrZero ( const T *  array,
const int  size 
) [inline]

Return an array of length size filled with input from array, or filled with zero if array is null.

Definition at line 208 of file CoinHelperFunctions.hpp.

template<class T >
void CoinMemcpyN ( register const T *  from,
const int  size,
register T *  to 
) [inline]

This helper function copies an array to another location.

The two arrays must not overlap (otherwise an exception is thrown). For speed 8 entries are copied at a time. The arrays are given by pointers to their first entries and by the size of the source array.

Note JJF - the speed claim seems to be false on IA32 so I have added alternative coding if USE_MEMCPY defined

Definition at line 231 of file CoinHelperFunctions.hpp.

template<class T >
void CoinMemcpy ( register const T *  first,
register const T *  last,
register T *  to 
) [inline]

This helper function copies an array to another location.

The two arrays must not overlap (otherwise an exception is thrown). For speed 8 entries are copied at a time. The source array is given by its first and "after last" entry; the target array is given by its first entry.

Definition at line 316 of file CoinHelperFunctions.hpp.

template<class T >
void CoinFillN ( register T *  to,
const int  size,
register const T  value 
) [inline]

This helper function fills an array with a given value.

For speed 8 entries are filled at a time. The array is given by a pointer to its first entry and its size.

Note JJF - the speed claim seems to be false on IA32 so I have added CoinZero to allow for memset.

Definition at line 331 of file CoinHelperFunctions.hpp.

template<class T >
void CoinFill ( register T *  first,
register T *  last,
const T  value 
) [inline]

This helper function fills an array with a given value.

For speed 8 entries are filled at a time. The array is given by its first and "after last" entry.

Definition at line 385 of file CoinHelperFunctions.hpp.

template<class T >
void CoinZeroN ( register T *  to,
const int  size 
) [inline]

This helper function fills an array with zero.

For speed 8 entries are filled at a time. The array is given by a pointer to its first entry and its size.

Note JJF - the speed claim seems to be false on IA32 so I have allowed for memset as an alternative

Definition at line 399 of file CoinHelperFunctions.hpp.

void CoinCheckDoubleZero ( double *  to,
const int  size 
) [inline]

This Debug helper function checks an array is all zero.

Definition at line 458 of file CoinHelperFunctions.hpp.

void CoinCheckIntZero ( int *  to,
const int  size 
) [inline]

This Debug helper function checks an array is all zero.

Definition at line 471 of file CoinHelperFunctions.hpp.

template<class T >
void CoinZero ( register T *  first,
register T *  last 
) [inline]

This helper function fills an array with a given value.

For speed 8 entries are filled at a time. The array is given by its first and "after last" entry.

Definition at line 489 of file CoinHelperFunctions.hpp.

char* CoinStrdup ( const char *  name  )  [inline]

Returns strdup or NULL if original NULL.

Definition at line 497 of file CoinHelperFunctions.hpp.

template<class T >
T CoinMax ( register const T  x1,
register const T  x2 
) [inline]

Return the larger (according to operator<() of the arguments.

This function was introduced because for some reason compiler tend to handle the max() function differently.

Definition at line 515 of file CoinHelperFunctions.hpp.

template<class T >
T CoinMin ( register const T  x1,
register const T  x2 
) [inline]

Return the smaller (according to operator<() of the arguments.

This function was introduced because for some reason compiler tend to handle the min() function differently.

Definition at line 526 of file CoinHelperFunctions.hpp.

template<class T >
T CoinAbs ( const T  value  )  [inline]

Return the absolute value of the argument.

This function was introduced because for some reason compiler tend to handle the abs() function differently.

Definition at line 537 of file CoinHelperFunctions.hpp.

template<class T >
bool CoinIsSorted ( register const T *  first,
const int  size 
) [inline]

This helper function tests whether the entries of an array are sorted according to operator<.

The array is given by a pointer to its first entry and by its size.

Definition at line 548 of file CoinHelperFunctions.hpp.

template<class T >
bool CoinIsSorted ( register const T *  first,
register const T *  last 
) [inline]

This helper function tests whether the entries of an array are sorted according to operator<.

The array is given by its first and "after last" entry.

Definition at line 596 of file CoinHelperFunctions.hpp.

template<class T >
void CoinIotaN ( register T *  first,
const int  size,
register T  init 
) [inline]

This helper function fills an array with the values init, init+1, init+2, etc.

For speed 8 entries are filled at a time. The array is given by a pointer to its first entry and its size.

Definition at line 607 of file CoinHelperFunctions.hpp.

template<class T >
void CoinIota ( T *  first,
const T *  last,
init 
) [inline]

This helper function fills an array with the values init, init+1, init+2, etc.

For speed 8 entries are filled at a time. The array is given by its first and "after last" entry.

Definition at line 661 of file CoinHelperFunctions.hpp.

template<class T >
T* CoinDeleteEntriesFromArray ( register T *  arrayFirst,
register T *  arrayLast,
const int *  firstDelPos,
const int *  lastDelPos 
) [inline]

This helper function deletes certain entries from an array.

The array is given by pointers to its first and "after last" entry (first two arguments). The positions of the entries to be deleted are given in the integer array specified by the last two arguments (again, first and "after last" entry).

Definition at line 674 of file CoinHelperFunctions.hpp.

double CoinDrand48 ( bool  isSeed = false,
unsigned int  seed = 1 
) [inline]

Return random number between 0 and 1.

Definition at line 730 of file CoinHelperFunctions.hpp.

void CoinSeedRandom ( int  iseed  )  [inline]

Seed random number generator.

Definition at line 742 of file CoinHelperFunctions.hpp.

char CoinFindDirSeparator (  )  [inline]

This function figures out whether file names should contain slashes or backslashes as directory separator.

Definition at line 767 of file CoinHelperFunctions.hpp.

int CoinStrNCaseCmp ( const char *  s0,
const char *  s1,
const size_t  len 
) [inline]

Definition at line 787 of file CoinHelperFunctions.hpp.

template<class T >
void CoinSwap ( T &  x,
T &  y 
) [inline]

Swap the arguments.

Definition at line 810 of file CoinHelperFunctions.hpp.

template<class T >
int CoinToFile ( const T *  array,
int  size,
FILE *  fp 
) [inline]

This helper function copies an array to file Returns 0 if OK, 1 if bad write.

Definition at line 824 of file CoinHelperFunctions.hpp.

template<class T >
int CoinFromFile ( T *&  array,
int  size,
FILE *  fp,
int &  newSize 
) [inline]

This helper function copies an array from file and creates with new.

Passed in array is ignored i.e. not deleted. But if NULL and size does not match and newSize 0 then leaves as NULL and 0 Returns 0 if OK, 1 if bad read, 2 if size did not match.

Definition at line 852 of file CoinHelperFunctions.hpp.

double CoinCbrt ( double  x  )  [inline]

Cube Root.

Definition at line 875 of file CoinHelperFunctions.hpp.


Generated on Tue Nov 10 04:09:36 2009 by  doxygen 1.6.1