Project
Loading...
Searching...
No Matches
GPUCommonDoubleBinary64.h File Reference

IEEE-754 binary64 in software, for a device that has none. More...

#include "GPUCommonDef.h"
#include <cstdint>

Go to the source code of this file.

Classes

class  o2::gpu::GPUdoubleBinary64
 

Namespaces

namespace  o2
 a couple of static helper functions to create timestamp values for CCDB queries or override obsolete objects
 
namespace  o2::gpu
 
namespace  o2::gpu::binary64_detail
 

Macros

#define GPUCA_B64_ALWAYS   inline __attribute__((always_inline))
 
#define GPUCA_B64_OP   inline
 
#define GPUCA_B64_SIGN   0x8000000000000000ULL
 
#define GPUCA_B64_FRAC   0x000fffffffffffffULL
 
#define GPUCA_B64_IMPL   0x0010000000000000ULL
 
#define GPUCA_B64_QUIET   0x0008000000000000ULL
 
#define GPUCA_B64_INF   0x7ff0000000000000ULL
 
#define GPUCA_B64_DNAN   0x7ff8000000000000ULL
 

Typedefs

typedef uint64_t o2::gpu::binary64_detail::u64
 
typedef int64_t o2::gpu::binary64_detail::i64
 
typedef uint32_t o2::gpu::binary64_detail::u32
 

Functions

GPUCA_B64_ALWAYS constexpr int32_t o2::gpu::binary64_detail::clz64 (u64 x)
 
GPUCA_B64_ALWAYS constexpr int32_t o2::gpu::binary64_detail::clz32 (u32 x)
 
GPUCA_B64_ALWAYS constexpr u32 o2::gpu::binary64_detail::asu32 (float f)
 
GPUCA_B64_ALWAYS constexpr float o2::gpu::binary64_detail::asf32 (u32 u)
 
GPUCA_B64_ALWAYS constexpr u64 o2::gpu::binary64_detail::mulhiu (u64 a, u64 b)
 
GPUCA_B64_ALWAYS constexpr i64 o2::gpu::binary64_detail::mulhis (i64 a, i64 b)
 
GPUCA_B64_ALWAYS constexpr u64 o2::gpu::binary64_detail::shrJam (u64 m, int32_t s)
 
GPUCA_B64_ALWAYS constexpr u64 o2::gpu::binary64_detail::roundPack (u64 sign, int32_t e, u64 m)
 
GPUCA_B64_ALWAYS constexpr u64 o2::gpu::binary64_detail::propNaN (u64 a, u64 b, bool an, bool bn)
 
GPUCA_B64_OP constexpr u64 o2::gpu::binary64_detail::addsub (u64 a, u64 b0, bool neg)
 
GPUCA_B64_OP constexpr u64 o2::gpu::binary64_detail::mul (u64 a, u64 b)
 
GPUCA_B64_OP constexpr u64 o2::gpu::binary64_detail::div (u64 a, u64 b)
 
GPUCA_B64_ALWAYS constexpr u64 o2::gpu::binary64_detail::fromU32 (u32 x)
 
GPUCA_B64_ALWAYS constexpr u64 o2::gpu::binary64_detail::fromI32 (int32_t x)
 
GPUCA_B64_ALWAYS constexpr u64 o2::gpu::binary64_detail::fromFloat (float f)
 
GPUCA_B64_OP constexpr float o2::gpu::binary64_detail::toFloat (u64 d)
 
template<>
 o2::gpu::GPUdi () o2
 

Variables

GPUdoubleBinary64 o2::gpu::b { return GPUdoubleBinary64::fromBits(binary64_detail::fromI32(a)) + b
 

Detailed Description

IEEE-754 binary64 in software, for a device that has none.

Definition in file GPUCommonDoubleBinary64.h.

Macro Definition Documentation

◆ GPUCA_B64_ALWAYS

#define GPUCA_B64_ALWAYS   inline __attribute__((always_inline))

Definition at line 57 of file GPUCommonDoubleBinary64.h.

◆ GPUCA_B64_DNAN

#define GPUCA_B64_DNAN   0x7ff8000000000000ULL

Definition at line 105 of file GPUCommonDoubleBinary64.h.

◆ GPUCA_B64_FRAC

#define GPUCA_B64_FRAC   0x000fffffffffffffULL

Definition at line 101 of file GPUCommonDoubleBinary64.h.

◆ GPUCA_B64_IMPL

#define GPUCA_B64_IMPL   0x0010000000000000ULL

Definition at line 102 of file GPUCommonDoubleBinary64.h.

◆ GPUCA_B64_INF

#define GPUCA_B64_INF   0x7ff0000000000000ULL

Definition at line 104 of file GPUCommonDoubleBinary64.h.

◆ GPUCA_B64_OP

#define GPUCA_B64_OP   inline

Definition at line 64 of file GPUCommonDoubleBinary64.h.

◆ GPUCA_B64_QUIET

#define GPUCA_B64_QUIET   0x0008000000000000ULL

Definition at line 103 of file GPUCommonDoubleBinary64.h.

◆ GPUCA_B64_SIGN

#define GPUCA_B64_SIGN   0x8000000000000000ULL

Definition at line 100 of file GPUCommonDoubleBinary64.h.