That's a very important point. For instance on Intel's CPUs multiplication is pipelined - its latency is 3 cycles, but throughput is 1 cycle. Thus completing N multiplication takes 2 + N cycles (in the best case), not 3 * N.
HN user
wmu
I'm a programmer, here is my website http://0x80.pl
Disclaimer: I'm one of the authors of sneller core. We have been working on this project for more than a year. It's has got neat AVX512-centered architecture and many neat tricks inside.
There are many scary things in the world. But the scariest is the line "Hi, I have a quick question". :)
It was already said by the author, that approx ~70% of patches can be applied independently in various part of the source tree. The rest has to be synchronised.
DuckDuckGo is also not good. Last week I switched to Bing and its results are surprisingly good.
- It looks like a virus... - But it's the antivirus!
:)
Thanks, that's a really elegant approach.
Author here. I cannot use BSR, because have to execute code for all bits, regardless their value. The range is: the last bit to the first with value 1. It's a non-obvious iteration schema. :)
In continental Europe I have often been in a room with people from 10 different countries say Germany, France, Italy, Russia, Poland, India, China, Korea, England. Everyone could understand each other's broken English with the exception that half of the people couldn't understand English guy.
The problem is that most people are not exposed to real-life English. It's either quite artificial language during classes or well spoken lines in movies. Words are spoken slower and clearer. Native speakers speak fast, use linking, colloquial language, multitude of idioms, phrasal verbs, and tons of stuff never ever touched during classes.
I use my own, simple CLI tool* (not only to track working hours, but also to track open source or hobby activiets). For many years I used Toggl, which is great and powerful - I just needed something that works offline.
There's a similar project http://rosettacode.org/wiki/Rosetta_Code.
We can call these things "flaws" or "traits", it doesn't really matter. The reality is SIMD hardware is ubiquitous, while the alternatives the article mentions are niche. Maybe except ARM SVE, which appeared this year on the market.
Love the whole project, she's my hero. :) I'm wondering how much did she pay in total to look like a billionaire.
I often use "not", "and", "or" to clearly express logical conditions. Bit operations look better as cryptic symbols "&", "|" and "~". :)
The sentence in question is misinterpreted. I read it like this: our contract applies all the time, not only when you're directly working for the company. We don't know what the contract exactly says. Likely there's an agreement not to work on IBM-related products in spare time.
Looks great! Seems there were some issues in conversion into HTML chapter titles. For example https://www.practical-go-lessons.com/chap-31-logging#log.fat...
Regarding the C++ version: instead of copying data to a vector and then sorting the vector, it might be more profitable to use std::multimap<size_t, string>. This is a sorted container (likely rb-tree based) that handles duplicated keys.
Also, as somebody else mentioned, iostreams are slow. Even simple reading of file can be several times slower than plain C (http://0x80.pl/notesen/2019-01-07-cpp-read-file.html).
The article mentions that the format was reverse-engineered, but the link goes to some extension database page, without any further details. Is the format really known?
Trivia: the Polish word "cuda" means "miracles", "zluda" ("złuda") means "a delusion". Nice pun.
Really nice, well written introduction. Graphviz is a cool tool, we used this when debugging some graph-related algorithms.
There's is an interesting supposition: if Haskell wasn't pure functional (had imperative constructions) it would be more popular. But Ocaml is not pure functional and is not popular.
There's the first issue: "`regex2fat` is nine characters long" (https://github.com/8051Enthusiast/regex2fat/issues/1) :)
After series of interviews I compiled questions to employer, maybe that would help others: https://github.com/WojciechMula/interview-questions
A thing for people not familiar with reST: check out ASCII-art tables - https://docutils.sourceforge.io/docs/user/rst/quickref.html#... :)
The irony was that I was probably the most productive person in that office (in my humble opinion).
It's a cognitive bias. I'm pretty sure I came across such example in Kahneman's "Thinking, Fast and Slow".
Well, this is a nice example of lack of knowledge flow. The senior developer spent his time explaining things that should have been put in the procedure's comment. Yes, that's what comments are for.
Instead of creating C code inside cmake scripts it's better to use command configure_file (https://cmake.org/cmake/help/latest/command/configure_file.h...). The command creates a source file based on a template file.
You can, but you shouldn't. Use of fixed-point numbers is way more reliable, often faster as it's implemented with integer numbers, you can easily detect overflow, you can increase/decrease precision if you need, etc.
In GCC runtime the terminate handler is called after stack unwinding.
A perfect example of the small-scale-example syndrome. As somebody else noted here, throwing an exception in a noexcept context calls std::terminate. Figuring out why terminate was triggered in a large, multithread program sounds like a funny task until you have to do it by yourself.
The only place for noexcept are getters that return a copy of a POD value or a (const-)reference. Placing noexcept anywhere else is a call for problems.