I couldn't find instructions that were 100% complete, so I put this together.
These instructions worked fine for me. Follow each step carefully.
Download Ubuntu Desktop 20.04 LTS from here.
I couldn't find instructions that were 100% complete, so I put this together.
These instructions worked fine for me. Follow each step carefully.
Download Ubuntu Desktop 20.04 LTS from here.
There are people out there who claim that merge-based workflows (that is, workflows which contain non-fast-forward merges) are bad.
They claim that git bisect
gets confused by merge-based workflows, and instead advocate rebase-based workflows without explicit feature branches.
They're wrong.
Furthermore, the "advantages" of their workflows are in fact disadvantages. Let me show you.
import heapq | |
class Vertex: | |
def __init__(self, val): | |
self.val = val | |
self.adjs = {} | |
def add_edge(self, j, val): | |
self.adjs[j] = val |
// Define this to turn on error checking | |
#define CUDA_ERROR_CHECK | |
#define CudaSafeCall( err ) __cudaSafeCall( err, __FILE__, __LINE__ ) | |
#define CudaCheckError() __cudaCheckError( __FILE__, __LINE__ ) | |
inline void __cudaSafeCall( cudaError err, const char *file, const int line ) | |
{ | |
#ifdef CUDA_ERROR_CHECK | |
if ( cudaSuccess != err ) |
#include <mutex> | |
#include <queue> | |
#include <iostream> | |
std::queue<int> q; // Queue which multiple threads might add/remove from | |
std::mutex m; // Mutex to protect this queue | |
template <class F> void lock(std::mutex& mut_ex, F f) | |
{ | |
std::lock_guard<std::mutex> guard{ mut_ex }; // Lock held from here to end of function |