Skip to main content

3 posts tagged with "semantics"

View All Tags

MATLAB No Longer Has a Place in the Modern World

High Performance C++
Editorial

High-performance numerical kernels are defined by the algebraic laws they exploit and by the architectural parameters they expose. Associativity of addition, distributivity of multiplication over addition, cache-line geometry, SIMD vector width, TLB reach, and the precise cost of data motion through the memory hierarchy jointly determine both attainable accuracy and attainable throughput.

Any language or environment that conceals those parameters prevents the programmer from stating the algorithm that is actually executed and from attaching a verifiable a-priori error bound to the computed result.

What a Concept Does Not Say

High Performance C++
Editorial

A concept named Ring is satisfied by any type with +, *, and the two identities. It is not satisfied only by rings. The distinction is not pedantry: the algorithms constrained by such a concept are correct on the rings and undefined on everything else in its model class, and the compiler cannot tell the difference.

Writing the Reassociation

High Performance C++
Editorial

Almost every fast reduction in existence is licensed by a property that floating-point addition does not have. The situation is stable, well understood, and routinely misdescribed (as a compiler flag, as a precision setting, as a tolerance question) when it is none of those. It is a question about which algorithm is being executed.