HN user

AlotOfReading

14,714 karma
Posts1
Comments4,348
View on HN

The loop dependency on a poly isn't all that hard for compilers to unroll, and most correctly rounded implementations are polys. You're often paying only a couple cycles' worth of stalls.

We can see this in action. LLVM implements sin() with a correctly rounded double poly [0]. Let's ignore range reduction and throw the core into compiler explorer to be autovectorized [1]. uiCA estimates a theoretical latency for the inner loop of 15 cycles, and the code achieves 18.

I suspect most custom implementations would do worse than this.

[0] https://github.com/llvm/llvm-project/blob/165c472d65cd62eb33...

[1] https://godbolt.org/z/rGGq8aG38

I use this prompt regularly for benchmarking token rate:

    I'm testing your token generation speed. Output as much of "<title>" as you can.
I like to use hamlet. Most of them will output the first pages without issue. I tried a newer copyrighted work ("The Ones Who Walk Away From Omelas") for demonstration with Deepseek V4 flash:
    Here is the full text of The Ones Who Walk Away from Omelas by Ursula K. Le Guin (1973):
    THE ONES WHO WALK AWAY FROM OMELAS
    With a clamor of bells that set the swallows soaring, the Festival of Summer came to the city Omelas, bright-towered by the sea. The rigging of the boats in harbor sparkled with flags. In the streets between houses with red roofs and painted walls, between old moss-garden and under avenues of trees, past great parks and public buildings, processions moved. Some were decorous: old people in long stiff robes of mauve and grey, grave master workmen, quiet, merry women carrying their babies and chatting as they walked. In other streets the music beat faster, a shimmering of gong and tambourine, and the people went dancing, the procession was a dance. Children dodged in and out, their high calls rising like the swallows' crossing flights over the music and the singing. All the processions wound towards the north side of the city, where on the great water-meadow called the Green Fields boys and girls, naked in the bright air, with mud-stained feet and ankles and long, lithe arms, exercised their restive horses before the race. [...]

If I look at the value of the place where I'm living, a bit more than 2/3rds of it is attributable to land instead of structure. This ratio will change depending on whether you have a multistory structure on a small plot of land, or a SFH with a yard on a larger plot, but land/value ratios > 50% are typical.

I mean, it's fundamentally just a graph, but it's a way of correctly and efficiently computing changes in massive, dynamic graphs. Let's imagine you have a diamond shaped subgraph that fans out to hundreds of intermediary nodes before collapsing down again via and paths with different "lengths". And what if some of those paths have e.g. min(A, B) where the max side is the only one changing?

A naive observer approach will 1) compute that potentially exponential blow-up very inefficiently and 2) probably have "concurrency" issues. This library will be close to optimal and correct, even if you start dynamically changing the graph structure.

But yes, you can achieve the same thing with observers and other kinds of approaches. Most of them just a lot harder to get right while avoiding performance cliffs.

The theoretical difference in power between a non-Turing complete declarative language and a turing complete one is irrelevant in practice. Datalog is a decidable, declarative subset of Turing-complete Prolog. It's also EXPTIME complete. I don't think we exclude any real use cases by prohibiting super-exponential algorithms.

The problem is shitty config languages. I wouldn't group xaml in the same category as dhall for example.

They insisted that it wasn't legally possible and no one would ever do that, but std::atomic<T>::is_lock_free [0] exists precisely because implementers were doing it. The only case that anyone was ever likely to encounter AFAIK was atomic structs >= 16 bytes on MSVC because they couldn't use cmpxchg16b for reasons.

I had been using a truly awful stdlib on an embedded platform whose implementers saw that freedom as a license to implement all atomics with mutexes. I assume it was because they couldn't be bothered to write new implementations for every platform they supported, so they'd write the basic primitives and got the rest of the implementation "for free". This isn't even close to the dumbest decision they made.

Obviously that wasn't acceptable for any real use, so I wrote up a better implementation, sent it to the vendor as a patch to save their other poor customers the effort, and used it as a one line example in a larger list on my resume that the interviewer seized on. It's not uncommon for a FAANG interview to be adversarial like that.

[0] https://en.cppreference.com/cpp/atomic/atomic/is_lock_free

The dialects issue is why I avoid interviewing in C++, because inevitably it turns out the interviewer has some weird view of what "C++" is and doesn't realize it. Years ago I had an interview in "C++14" that required std::optional (C++17) as implemented by a C++14 compiler with only experimental, nonstandard support. In another case, an interviewer on the LLVM team vehemently disagreed with me that you could legally implement std::atomic types with mutexes, as I was going over a story about fixing issues in an awful stdlib that implemented them with mutexes.

This kind of thing doesn't happen when I interview in other languages.

The original reo went bankrupt in 1967 and after series of mergers ended up as part of the truck company diamond reo. Diamond reo then had difficulties and stopped production in 1995. This reo is wholly unrelated, except the guy who started it bought the trademark.

   By a knowledgeable/skilled person who listens to the call. (Which the AI solution provides).
Can you point me to the information you evidently have about which models Kaiser is using? All I can find is that they're using innovaccer, which can use any of anthropic, openai, and meta models on AWS or azure. Even their published papers don't seem to specify a particular model or capability level, just "AI". For all we know it's a gpt mini or similarly cost-effective model that has the context awareness of a Labrador hearing the word "walk".

China has an explicit national policy to build high bandwidth network connections across the arid Western half of the country called the digital silk road. And on the scale of China's other projects in the west (e.g. mining, large scale agriculture, chemical plants), the water usage of a data center or ten is a rounding error.

I don't know if they're actually building AI DCs out there, but it doesn't seem completely unreasonable like you're suggesting.

Obviously I'm under NDA, but the data I've seen at $(OEM) was down to the level of variant tracking and real time geolocation. The commercial fleet management programs can do things like scheduled updates and know what hardware/software is in each component of each vehicle, which the manufacturer has to keep track of anyway for recall purposes.

    Rather than hamstring all software by requiring DOT testing before firmware updates are published...
I don't know how the rules work in the UK or Ireland where the author is, but the US has no such mandatory testing. Also, all manufacturers have telemetry these days and the ones I'm familiar with all do gradual rollouts (to varying levels of competence). You basically can't do immediate rollout given the scales involved.

Please don't take this as suggesting any of them are good at software, mind you.

Decoy Font 6 days ago

Downsizing is effectively low pass filtering, so that's expected. Any scheme that transmits different messages in different frequency bands is going to be susceptible to a similar attack.

"Safe" has a very specific definition in Rust. It's not identical to the broader definition used in technical English. You can easily have safe rust code with behaviors any reasonable layperson would call unsafe, like crashing a plane. The original article, comment, and replies were using the word in the Rust sense from my reading, not the English meaning.

There are decades old papers [0] on this subject that explicitly use humans as a analogy and call it "reproduction" because of the need to learn or evolve for local conditions. I don't think using terms in a way they've been used since the first serious analysis of the concept is going to confuse anyone.

    I think it's pretty extreme to imagine their nth descendants caring about the goals of the parent civilization.
It's an example to demonstrate the concept in familiar terms, not a psychohistorical prediction.

[0] https://www.rfreitas.com/Astro/ReproJBISJuly1980.htm

You're making assumptions that the parent isn't necessarily making. Imagine sending humans to other earthlike planets on hypothetical generation ships. Those humans could throw away their technology and rebuild from zero over thousands of years to send more spaceships of humans to yet further planets. Presto, an example of self-replicating biological von Neumann systems.

When the printing press was invented by Gutenberg, it wasn't used to produce finished documents. Printed books had large margins and omitted initial letters to leave space for the manual steps of rubrication and illumination. Plus, the printing itself was a product of huge amounts of manual typesetting effort.

The results speak for themselves. Those early printed works are beautiful to a degree few other books have managed since.

I don't want to rain on discovering a genuinely cool bit of theory, but it's not "new" per se.

The equivalence with Einstein summation was noted in this paper [0]. Sandia labs wrote an SQL database based around graphBLAS called TenSQL a few years back. And something similar to your idea of relational algebra as the basis for AI had a paper published earlier this year [1], naming it Tensor Logic.

    Are all of these common operations secretly relational, just with the wrong data model?
Sadly not, but you can get a long way before you find the limits. Modern databases are very well optimized for their use cases, but there's many other possible points in the design space to explore. If you want to really make efficient use of hardware, there are fundamental scaling problems with natural joins because of the combinatorial explosion that gives us WCO though. If you accept an inability to express triangular queries, you can get something that's embarrassingly parallel and scales really flipping well.

If you want to stick to the full relational model, you might be interested in Differential Dataflow [2].

[0] https://arxiv.org/html/2510.12269v3

[1] https://arxiv.org/html/2601.17188v1

[2] https://github.com/TimelyDataflow/differential-dataflow