SNAP Library 6.0, Developer Reference  2020-12-09 16:24:20
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
TPairHashImpl2 Class Reference

Computes a hash code from a pair of hash codes. More...

#include <bd.h>

Static Public Member Functions

static int GetHashCd (const int hc1, const int hc2)
 

Detailed Description

Computes a hash code from a pair of hash codes.

Both TPairHashImpl1 and TPairHashImpl2 implement the same function: ((a + b) * (a + b + 1) / 2) + a.

Definition at line 588 of file bd.h.

Member Function Documentation

static int TPairHashImpl2::GetHashCd ( const int  hc1,
const int  hc2 
)
inlinestatic

Definition at line 590 of file bd.h.

Referenced by TPair< TFlt, TFlt >::GetPrimHashCd(), TTriple< TInt, TVec, TVal >::GetPrimHashCd(), TQuad< TVal1, TVal2, TVal3, TVal4 >::GetPrimHashCd(), TTuple< TVal, NVals >::GetPrimHashCd(), GroupStmt::GetPrimHashCd(), TVec< TVal, TSizeTy >::GetPrimHashCd(), TPair< TFlt, TFlt >::GetSecHashCd(), TTriple< TInt, TVec, TVal >::GetSecHashCd(), TQuad< TVal1, TVal2, TVal3, TVal4 >::GetSecHashCd(), TTuple< TVal, NVals >::GetSecHashCd(), GroupStmt::GetSecHashCd(), and TVec< TVal, TSizeTy >::GetSecHashCd().

590  {
591  unsigned long long sum = ((unsigned long long) hc1) + ((unsigned long long) hc2);
592  unsigned long long c = ((sum * (sum + 1)) >> 1) + hc1;
593  unsigned int R = (unsigned int) (c >> 31), Q = (unsigned int) (c & 0x7fffffffULL);
594  if ((R & 0x80000000U) != 0) R -= 0x7fffffffU;
595  unsigned int RQ = R + Q;
596  if (RQ < 0x7fffffffU) return (int) RQ;
597  RQ -= 0x7fffffffU;
598  return (RQ == 0x7fffffffU) ? 0 : (int) RQ; }

Here is the caller graph for this function:


The documentation for this class was generated from the following file: