Skip to content

Instantly share code, notes, and snippets.

Avatar
😄

Giles Bathgate GilesBathgate

😄
View GitHub Profile
@GilesBathgate
GilesBathgate / Intersections_benchmark.cpp
Last active Mar 22, 2022
Benchmark for SNC_intersection
View Intersections_benchmark.cpp
#define CGAL_NO_ASSERTIONS 1
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Kernel/global_functions.h>
#include <CGAL/point_generators_3.h>
#include <CGAL/Timer.h>
#include <CGAL/Nef_polyhedron_3.h>
#include <random>
#include <algorithm>
using K = CGAL::Exact_predicates_exact_constructions_kernel;
@GilesBathgate
GilesBathgate / main.cpp
Created Mar 9, 2022
Sphere circle benchmark
View main.cpp
#include <CGAL/Exact_predicates_exact_constructions_kernel.h>
#include <CGAL/Kernel/global_functions.h>
#include <CGAL/Nef_S2/Sphere_circle.h>
#include <CGAL/point_generators_3.h>
#include <benchmark/benchmark.h>
using K = CGAL::Exact_predicates_exact_constructions_kernel;
using Point = CGAL::Point_3<K>;
using Plane = CGAL::Plane_3<K>;
using Sphere_circle = CGAL::Sphere_circle<K>;
View Unique_hash_map.h
// Copyright (c) 1997-2000
// Utrecht University (The Netherlands),
// ETH Zurich (Switzerland),
// INRIA Sophia-Antipolis (France),
// Max-Planck-Institute Saarbruecken (Germany),
// and Tel-Aviv University (Israel). All rights reserved.
//
// This file is part of CGAL (www.cgal.org)
//
// $URL$
@GilesBathgate
GilesBathgate / ID_support_handler_benchmark.cpp
Created Nov 9, 2020
ID_support_handler performance benchmark
View ID_support_handler_benchmark.cpp
#include <benchmark/benchmark.h>
#include <CGAL/Nef_3/ID_support_handler.h>
#include <CGAL/Nef_3/SNC_indexed_items.h>
// A bit unconventional ;)
static int data[][2]
#include "sample.data"
;
namespace CGAL {
@GilesBathgate
GilesBathgate / main.cpp
Last active Nov 4, 2020
ID_support_handler benchmark.
View main.cpp
#include <iostream>
static int allocations = 0;
static int totalBytes = 0;
//Logging allocator
template<class T>
struct Allogator {
typedef T value_type;
T* allocate(size_t n, const void* = nullptr)
View Prusa i3 Cooldown GCODE
G92 E0 ; zero extruder
G1 E-3.0 F1500 ; retract
G4 ; wait
M104 S0 ; turn off temperature
{if layer_z < max_print_height}G1 Z{z_offset+min(layer_z+30, max_print_height)}{endif} ; Move print head up
M106 S255 ; turn fan on
G1 X125 Y0 F3000.0 ; goto middle
M190 R0 T40 ; turn off bed and wait for cooldown
M107 ; turn off fan
G1 X0 Y200 F3000 ; home X axis
View Program.cs
using Microsoft.Deployment.WindowsInstaller;
using System;
using WixSharp;
using WixSharp.CommonTasks;
namespace Setup1
{
class Program
{
static void Main()
@GilesBathgate
GilesBathgate / Harvester.cs
Last active Feb 21, 2021
Harvester implementation
View Harvester.cs
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using System.Xml.Linq;
using WixSharp;
using WixSharp.CommonTasks;
namespace WixSharp
View benchmark-update.d
extern (C) void* _aaGetX(void** paa, const TypeInfo_AssociativeArray ti, in size_t valuesize, in void* pkey, out bool found) pure nothrow;
V* slot(K, V)(ref V[K] aa, K key, out bool found)
{
return cast(V*) _aaGetX(cast(void**)&aa, typeid(V[K]), V.sizeof, &key, found);
}
void update(K, V, C, U)(ref V[K] aa, K key, C create, U update)
if (is(C : V delegate()) || is(C : V function()) && (is(U : V delegate(ref V)) || is(U : V function(ref V))))
{
View Not so Simple!
module interop.net;
import core.sys.windows.windows;
import core.sys.windows.com;
import core.sys.windows.objidl;
import core.sys.windows.oaidl;
import core.sys.windows.wtypes;
pragma(lib, "mscoree.lib");
extern (Windows)