Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/helpers.cpp

    • Property mode changed from 100755 to 100644
    rbe90f1 rf66195  
    66
    77#include "helpers.hpp"
    8 #include "memoryusageobserver.hpp"
    98
    109/********************************************** helpful functions *********************************/
     
    118117};
    119118
    120 /**
    121  * Allocates a memory range using malloc().
     119/** Blows the 6-dimensional \a cell_size array up to a full NDIM by NDIM matrix.
     120 * \param *symm 6-dim array of unique symmetric matrix components
     121 * \return allocated NDIM*NDIM array with the symmetric matrix
     122 */
     123double * ReturnFullMatrixforSymmetric(double *symm)
     124{
     125  double *matrix = Malloc<double>(NDIM * NDIM, "molecule::ReturnFullMatrixforSymmetric: *matrix");
     126  matrix[0] = symm[0];
     127  matrix[1] = symm[1];
     128  matrix[2] = symm[3];
     129  matrix[3] = symm[1];
     130  matrix[4] = symm[2];
     131  matrix[5] = symm[4];
     132  matrix[6] = symm[3];
     133  matrix[7] = symm[4];
     134  matrix[8] = symm[5];
     135  return matrix;
     136};
     137
     138/** Comparison function for GSL heapsort on distances in two molecules.
     139 * \param *a
     140 * \param *b
     141 * \return <0, \a *a less than \a *b, ==0 if equal, >0 \a *a greater than \a *b
     142 */
     143int CompareDoubles (const void * a, const void * b)
     144{
     145  if (*(double *)a > *(double *)b)
     146    return -1;
     147  else if (*(double *)a < *(double *)b)
     148    return 1;
     149  else
     150    return 0;
     151};
     152
     153
     154/** Allocates a memory range using malloc().
    122155 * Prints the provided error message in case of a failure.
    123156 *
     
    144177};
    145178
    146 /**
    147  * Frees all memory registered by the memory observer and calls exit(225) afterwards.
    148  */
    149 void performCriticalExit() {
    150   map<void*, size_t> pointers = MemoryUsageObserver::getInstance()->getPointersToAllocatedMemory();
    151   for (map<void*, size_t>::iterator runner = pointers.begin(); runner != pointers.end(); runner++) {
    152     Free(((void**) &runner->first));
    153   }
    154 
    155   exit(255);
    156 }
Note: See TracChangeset for help on using the changeset viewer.