SNAP Library 4.1, User Reference  2018-07-26 16:30:42
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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.

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; }

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