Low-level code optimization on the Elbrus platform: vector addition of uint16_t using intrinsics

Low-level code optimization on the Elbrus platform: vector addition of uint16_t using intrinsics  
In this article, we'll talk about the more low-level optimizations that can be made on Elbrus processors.
In principle, optimization of this level is not a necessary development stage for Elbrus. For most computational operations that require high performance, you can and should use functions from the EML library.
However, in the current version of EML, we did not find some interesting functions, so we decided to write them ourselves.
For this we used intrinsics. Intrinsics are constructs that look like routine functions to the programmer, but their calls are replaced by the compiler "in place" ...

Developing games under NES on C. Chapters 17-21. Own game

In this part we will collect everything together and make a simple scrolling shooter on the space theme: the ship flies and shoots enemies
with lasers.  
previous following
Developing games under NES on C. Chapters 17-21. Own game
one of the articles .
Background with stars [/b]
Vert_scroll2 = ((Vert_scroll & 0xF8) 2);
Sprite_Zero (); //wait for the collision of the zero sprite
SCROLL = Vert_scroll;
PPU_ADDRESS = Vert_scroll2;

There were difficulties: in a few seconds everything was moving away. In the FCEUX debugger...

DSP in Java

Java is a general-purpose programming language. General-purpose means you can write almost any program. So I tried to write a program that is usually written in C or C ++. Under the cut I'll try to tell you how I decoded satellite images from Meteor-M No. 2 .
DSP in Java
Usually the algorithm for obtaining the picture is as follows:
Record the signal
Run SDR # with certain plug-ins and settings and demodulate the signal. The output is a binary file.
Start LRPToffLineDecoder and pass the binary file received earlier to the input.
From LRPToffLineDecoder save the picture somewhere.

Optimizing the code in the mind, or "Well, it's also definitely faster"

The other day working on one mistake in one open-source project, I saw how a colleague (also working in parallel over the same problem) flooded such a commit.[31a078bec7] :
- * Select the list item based on the index. Negative operand means
- * end-based indexing (-? ), and -1 means out of range.
+ * Decode end-offset index values.
* /
- if (opnd < -1) {
.- index = opnd + 1 + objc;
.-} else {
.-- index = opnd;
+ index = opnd + (opnd <= TCL_INDEX_END)*(objc - 1 - TCL_INDEX_END);
.pcAdjustment = 5;

The change itself is correct (now TCL_INDEX_END is the constant ...

How I wrote the fastest memo function

In fact, I wrote probably the slowest memo function, but it turned out to be fast. My fault is not here. It's all about balance.
In the balance between how long the memo function will be performed, how much additional time will be required for the sugar of memoization, and (about it everyone forgets) how many programmers it will take to properly fix this memoization.
How I wrote the fastest memo function  
But let's start with a simple - what kind of word is so strange - "memoization".
Lodash.memoize , for example, by default it works with one function argument. Fast-memoize ...

Developing games under NES on C. Chapters 14-16. Working with sound

In this part, basic information about working with sound. It is very confusing and uses specific terminology, so it is not very clear to describe it clearly.
Developing games under NES on C. Chapters 14-16. Working with sound
Getting started with
A review of the tools that the NES platform presents to us. However, further we will go to a higher level and will use the library Famitracker.
The easiest way to feel the sound capabilities of the console is with the help of demos Sound Test, developed by SnoBrow. It is not compatible with all emulators, but FCEUX is supported.
The Select button toggles ...

Obtaining the command parameters from the human phrase

Although I and managed to figure out with the classification of intent, there remained a more complicated task - to extract additional parameters from the phrase. I know that this is done with the help of tags. Once I have successfully used sequence_tagging , but I'm not very happy that you need to keep a dictionary of vector representations of words larger than 6 gigabytes.
example of implementation of the tagger on Keras and, in the best traditions of his experiments...

Programming languages ​​for the quantum computer

Programming languages ​​for the quantum computer
The prototype of the nucleus of an ion quantum computer. Ion Quantum Technology Group , Sussex University
Quantum computers from time to time fall into the media. You hear about how a person step by step approaches their creation, although for the most part the development of quantum computing remains a strange and mysterious art.
Fortunately, to solve this problem, there are excellent projects that attract attention to a wide audience. For example, a few years ago IBM allowed anyone to connect to a 5-kbit computer. The project registered 7?000 people.
However, the industry of quantum computing ...