Tunabrain
I've never seen arXiv papers counted towards your publications anywhere that the number of your publications are used as a metric. Is USCIS different?
The behavior in the linked article has to do with the use of atomic adds to reduce sums in parallel. Floating point addition is not associative, so the order in which addition occurs matters. When using atomic adds this way, you get slightly different results depending on the order in which threads arrive at the atomic add call. It's a simple race condition, although one which is usually deemed acceptable.
However, if the operands are small (e.g. 2/3/4 element vectors are very common), then "unnecessary copies" or move semantics don't come into play at all. These are value types and the compiler would boil them down to the same assembly as the code you post above. Many modern C++ codebases in scientific computing, rendering, or the game industry make use of vector classes with operator overloading, with no performance drawbacks whatsoever; however, code is much more readable, as it matches actual mathematical notation.
Stars looking a bit dim? Throw some math at them
Star stacking: Astrophotography in C++11
Reverse engineering a malicious scam script
You might not get up to 60, but this is just a simple matrix addition. Even just matrix multiplication might be enough to get a 60x difference just with optimizing for memory hierarchy. I expect that high-performance memory bound programs are more complex than matrix multiplication, so the parent comment's claim doesn't seem too unlikely to me.
I don't see why this couldn't be done in a Desktop browser (just enter a phone number/email address instead of selecting a contact).
> The device uses solar electricity from a photovoltaic panel to power the chemistry that splits water into oxygen and hydrogen. Microbes within the system then feed on the hydrogen and convert carbon dioxide in the air into alcohol that can be burned as fuel
Only the hydrogen + co2 -> alcohol part uses biological components.
Show HN: Physics Clock, a JavaScript rewrite of an old high school project
I used to watch satellite TV when I was a kid. Most channels I watched were privately owned and purely financed with their (extremely long) ad breaks. Is it my moral obligation to sit through every single ad break?
My answer is no, that's ridiculous. If a company decides to offer content for free, it is not my obligation to make sure their business model stays lucrative. It shouldn't be anyone's obligation to consume every last bit of content someone offers only because it's given away for free.
Rendering a Buddhabrot at 4K and Other Bad Ideas
However, if I understood correctly, the size of the Game of Life grid is fixed in the Makefile and cannot be extended arbitrarily at runtime, making it not Turing complete (cool nonetheless!).
Although, maybe a Makefile that generates a Makefile with an arbitrary number of cells...?
(on Windows use MinGW/MSYS or Cygwin make and make sure you have rustc in PATH)
This made me chuckle - if you have MSYS installed, which already comes with a windows port of coreutils, why would you want to use it to build a windows port of coreutils?Is giving out an 8+ hour programming project as part of the application process really considered good hiring practice? If you apply to five jobs, you're expected to spend an entire unpaid work week writing code that doesn't benefit anyone? If a company receives 20 applicants, their ideal candidate selection wastes a collective work month?
I don't really understand this ideal. What's the point of maintaining an online portfolio and a github profile full of code if companies prefer to waste your time writing a pointless uploader?
Whether or not this makes the scanning more plausible, I am not sure. However, some of the 3D models generated with the Kinect 2 [1] do seem to contain a decent amount of detail.
[1] http://zugara.com/wp-content/uploads/Kinect-1-vs-Kinect-2-Vi...
Wenzel was actually one of my thesis advisors, and his tool was the inspiration behind this project. :) I was writing an implementation of Manifold Walks out of personal interest and reproduced his 2D tool for debugging purposes. Eventually I realized that caustics in 2D actually look kinda neat, so I spent some time doing research and then fleshed it out into this article + demo.
I wasn't able to implement an acceleration structure in WebGL, so the amount of primitives it can trace in real-time are quite limited, and all scenes had to be hardcoded in GLSL. This makes modifying scenes a real pain, since adding a new primitive amounts to generating and compiling new shader code.
The original C++ version just constructs the scene from very small (~1px long) line segments and then builds a BVH acceleration structure over them, so you have practically unlimited freedom in the type and number of primitives. Unfortunately traversing a BVH inside a shader in WebGL is almost not doable, so I had to improvise.
The Secret Life of Photons: Simulating 2D Light Transport
Mitsuba was and continues to be an important inspiration.
The main challenge is probably achieving full utilization of SIMD units (CPU) or streaming multiprocessors (GPU), which would require tracing and shading multiple rays within one unit. There's lots of papers on how to do this for geometry intersection (i.e. packet tracing), and I think there's a few slides from nvidia that give hints on how to do it for shading (avoid megakernels, sort all shading points by material id).
Brigade is a path tracer that is close to the real-time ideal (for outdoor scenes and using high-end GPUs), so looking into their code would certainly be interesting.
It's not currently user configurable, but I'll add it to the Todo list. Thanks!