Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
102 changes: 102 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,102 @@
---
# clang-format configuration for linksplatform/Data.Doublets C++ code
Language: Cpp
BasedOnStyle: LLVM

# Basic formatting options
IndentWidth: 4
TabWidth: 4
UseTab: Never
ColumnLimit: 120
MaxEmptyLinesToKeep: 2

# Indentation
AccessModifierOffset: -4
IndentAccessModifiers: false
IndentCaseLabels: true
IndentWrappedFunctionNames: false
IndentPPDirectives: None
NamespaceIndentation: None

# Alignment
AlignAfterOpenBracket: Align
AlignConsecutiveAssignments: false
AlignConsecutiveDeclarations: false
AlignEscapedNewlines: Right
AlignOperands: true
AlignTrailingComments: true

# Allow/breaking rules
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortCaseLabelsOnASingleLine: false
AllowShortFunctionsOnASingleLine: Inline
AllowShortIfStatementsOnASingleLine: false
AllowShortLoopsOnASingleLine: false
AlwaysBreakAfterReturnType: None
AlwaysBreakBeforeMultilineStrings: false
AlwaysBreakTemplateDeclarations: Yes

# Binary operators
BreakBeforeBinaryOperators: None
BreakBeforeTernaryOperators: true
BreakConstructorInitializers: BeforeColon
BreakInheritanceList: BeforeColon

# Braces
BreakBeforeBraces: Allman
BraceWrapping:
AfterClass: true
AfterControlStatement: true
AfterEnum: true
AfterFunction: true
AfterNamespace: false
AfterObjCDeclaration: true
AfterStruct: true
AfterUnion: true
BeforeCatch: true
BeforeElse: true
IndentBraces: false
SplitEmptyFunction: false
SplitEmptyRecord: false
SplitEmptyNamespace: false

# Constructor initializers
ConstructorInitializerAllOnOneLineOrOnePerLine: true
ConstructorInitializerIndentWidth: 4

# Includes
IncludeBlocks: Preserve
SortIncludes: true

# Penalties (for line breaking decisions)
PenaltyBreakAssignment: 2
PenaltyBreakBeforeFirstCallParameter: 19
PenaltyBreakComment: 300
PenaltyBreakFirstLessLess: 120
PenaltyBreakString: 1000
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 60

# Pointers and references
PointerAlignment: Left
DerivePointerAlignment: false

# Spaces
SpaceAfterCStyleCast: false
SpaceAfterTemplateKeyword: true
SpaceBeforeAssignmentOperators: true
SpaceBeforeCtorInitializerColon: true
SpaceBeforeInheritanceColon: true
SpaceBeforeParens: ControlStatements
SpaceBeforeRangeBasedForLoopColon: true
SpaceInEmptyParentheses: false
SpacesBeforeTrailingComments: 1
SpacesInAngles: false
SpacesInContainerLiterals: true
SpacesInCStyleCastParentheses: false
SpacesInParentheses: false
SpacesInSquareBrackets: false

# Standard
Standard: c++17
153 changes: 53 additions & 100 deletions c/ffi.h
Original file line number Diff line number Diff line change
Expand Up @@ -5,48 +5,53 @@
#include <stdint.h>
#include <stdlib.h>

typedef struct Link_u8 {
typedef struct Link_u8
{
uint8_t index;
uint8_t source;
uint8_t target;
} Link_u8;

typedef uint8_t (* CUDCallback_u8)(struct Link_u8 before, struct Link_u8 after);
typedef uint8_t (*CUDCallback_u8)(struct Link_u8 before, struct Link_u8 after);

typedef struct Link_u16 {
typedef struct Link_u16
{
uint16_t index;
uint16_t source;
uint16_t target;
} Link_u16;

typedef uint16_t (* CUDCallback_u16)(struct Link_u16 before, struct Link_u16 after);
typedef uint16_t (*CUDCallback_u16)(struct Link_u16 before, struct Link_u16 after);

typedef struct Link_u32 {
typedef struct Link_u32
{
uint32_t index;
uint32_t source;
uint32_t target;
} Link_u32;

typedef uint32_t (* CUDCallback_u32)(struct Link_u32 before, struct Link_u32 after);
typedef uint32_t (*CUDCallback_u32)(struct Link_u32 before, struct Link_u32 after);

typedef struct Link_u64 {
typedef struct Link_u64
{
uint64_t index;
uint64_t source;
uint64_t target;
} Link_u64;

typedef uint64_t (* CUDCallback_u64)(struct Link_u64 before, struct Link_u64 after);
typedef uint64_t (*CUDCallback_u64)(struct Link_u64 before, struct Link_u64 after);

typedef uint8_t (* EachCallback_u8)(struct Link_u8);
typedef uint8_t (*EachCallback_u8)(struct Link_u8);

typedef uint16_t (* EachCallback_u16)(struct Link_u16);
typedef uint16_t (*EachCallback_u16)(struct Link_u16);

typedef uint32_t (* EachCallback_u32)(struct Link_u32);
typedef uint32_t (*EachCallback_u32)(struct Link_u32);

typedef uint64_t (* EachCallback_u64)(struct Link_u64);
typedef uint64_t (*EachCallback_u64)(struct Link_u64);

typedef struct SharedLogger {
void (* formatter)(const Record*);
typedef struct SharedLogger
{
void (*formatter)(const Record*);
} SharedLogger;

void* ByteUnitedMemoryLinks_New(const char* path);
Expand All @@ -65,45 +70,21 @@ void UInt32UnitedMemoryLinks_Drop(void* this_);

void UInt64UnitedMemoryLinks_Drop(void* this_);

uint8_t ByteUnitedMemoryLinks_Create(void* this_,
const uint8_t* query,
uintptr_t len,
CUDCallback_u8 callback);

uint16_t UInt16UnitedMemoryLinks_Create(void* this_,
const uint16_t* query,
uintptr_t len,
CUDCallback_u16 callback);

uint32_t UInt32UnitedMemoryLinks_Create(void* this_,
const uint32_t* query,
uintptr_t len,
CUDCallback_u32 callback);

uint64_t UInt64UnitedMemoryLinks_Create(void* this_,
const uint64_t* query,
uintptr_t len,
CUDCallback_u64 callback);

uint8_t ByteUnitedMemoryLinks_Each(void* this_,
const uint8_t* query,
uintptr_t len,
EachCallback_u8 callback);

uint16_t UInt16UnitedMemoryLinks_Each(void* this_,
const uint16_t* query,
uintptr_t len,
EachCallback_u16 callback);

uint32_t UInt32UnitedMemoryLinks_Each(void* this_,
const uint32_t* query,
uintptr_t len,
EachCallback_u32 callback);

uint64_t UInt64UnitedMemoryLinks_Each(void* this_,
const uint64_t* query,
uintptr_t len,
EachCallback_u64 callback);
uint8_t ByteUnitedMemoryLinks_Create(void* this_, const uint8_t* query, uintptr_t len, CUDCallback_u8 callback);

uint16_t UInt16UnitedMemoryLinks_Create(void* this_, const uint16_t* query, uintptr_t len, CUDCallback_u16 callback);

uint32_t UInt32UnitedMemoryLinks_Create(void* this_, const uint32_t* query, uintptr_t len, CUDCallback_u32 callback);

uint64_t UInt64UnitedMemoryLinks_Create(void* this_, const uint64_t* query, uintptr_t len, CUDCallback_u64 callback);

uint8_t ByteUnitedMemoryLinks_Each(void* this_, const uint8_t* query, uintptr_t len, EachCallback_u8 callback);

uint16_t UInt16UnitedMemoryLinks_Each(void* this_, const uint16_t* query, uintptr_t len, EachCallback_u16 callback);

uint32_t UInt32UnitedMemoryLinks_Each(void* this_, const uint32_t* query, uintptr_t len, EachCallback_u32 callback);

uint64_t UInt64UnitedMemoryLinks_Each(void* this_, const uint64_t* query, uintptr_t len, EachCallback_u64 callback);

uint8_t ByteUnitedMemoryLinks_Count(void* this_, const uint8_t* query, uintptr_t len);

Expand All @@ -113,53 +94,25 @@ uint32_t UInt32UnitedMemoryLinks_Count(void* this_, const uint32_t* query, uintp

uint64_t UInt64UnitedMemoryLinks_Count(void* this_, const uint64_t* query, uintptr_t len);

uint8_t ByteUnitedMemoryLinks_Update(void* this_,
const uint8_t* query,
uintptr_t len_q,
const uint8_t* replacement,
uintptr_t len_r,
CUDCallback_u8 callback);

uint16_t UInt16UnitedMemoryLinks_Update(void* this_,
const uint16_t* query,
uintptr_t len_q,
const uint16_t* replacement,
uintptr_t len_r,
CUDCallback_u16 callback);

uint32_t UInt32UnitedMemoryLinks_Update(void* this_,
const uint32_t* query,
uintptr_t len_q,
const uint32_t* replacement,
uintptr_t len_r,
CUDCallback_u32 callback);

uint64_t UInt64UnitedMemoryLinks_Update(void* this_,
const uint64_t* query,
uintptr_t len_q,
const uint64_t* replacement,
uintptr_t len_r,
CUDCallback_u64 callback);

uint8_t ByteUnitedMemoryLinks_Delete(void* this_,
const uint8_t* query,
uintptr_t len,
CUDCallback_u8 callback);

uint16_t UInt16UnitedMemoryLinks_Delete(void* this_,
const uint16_t* query,
uintptr_t len,
CUDCallback_u16 callback);

uint32_t UInt32UnitedMemoryLinks_Delete(void* this_,
const uint32_t* query,
uintptr_t len,
CUDCallback_u32 callback);

uint64_t UInt64UnitedMemoryLinks_Delete(void* this_,
const uint64_t* query,
uintptr_t len,
CUDCallback_u64 callback);
uint8_t ByteUnitedMemoryLinks_Update(void* this_, const uint8_t* query, uintptr_t len_q, const uint8_t* replacement,
uintptr_t len_r, CUDCallback_u8 callback);

uint16_t UInt16UnitedMemoryLinks_Update(void* this_, const uint16_t* query, uintptr_t len_q,
const uint16_t* replacement, uintptr_t len_r, CUDCallback_u16 callback);

uint32_t UInt32UnitedMemoryLinks_Update(void* this_, const uint32_t* query, uintptr_t len_q,
const uint32_t* replacement, uintptr_t len_r, CUDCallback_u32 callback);

uint64_t UInt64UnitedMemoryLinks_Update(void* this_, const uint64_t* query, uintptr_t len_q,
const uint64_t* replacement, uintptr_t len_r, CUDCallback_u64 callback);

uint8_t ByteUnitedMemoryLinks_Delete(void* this_, const uint8_t* query, uintptr_t len, CUDCallback_u8 callback);

uint16_t UInt16UnitedMemoryLinks_Delete(void* this_, const uint16_t* query, uintptr_t len, CUDCallback_u16 callback);

uint32_t UInt32UnitedMemoryLinks_Delete(void* this_, const uint32_t* query, uintptr_t len, CUDCallback_u32 callback);

uint64_t UInt64UnitedMemoryLinks_Delete(void* this_, const uint64_t* query, uintptr_t len, CUDCallback_u64 callback);

void setup_shared_logger(struct SharedLogger logger);

Expand Down
8 changes: 4 additions & 4 deletions cpp/Platform.Data.Doublets.Benchmarks/AllBenchmarks.cpp
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#include <benchmark/benchmark.h>
#include <Platform.Data.Doublets.h>
//#include "MemoryBenchmarks.cpp"
#include "CreateMillionPointsBenchmarks.cpp"
#include <Platform.Data.Doublets.h>
#include <benchmark/benchmark.h>
// #include "MemoryBenchmarks.cpp"
#include "CheckDefaultHandlerOrJustCallBenchmarks.cpp"
#include "CreateMillionPointsBenchmarks.cpp"

BENCHMARK_MAIN();
Loading
Loading