Ropes — Fast Strings

Most of us work with strings one way or another. There’s no way to avoid them — when writing code, you’re doomed to concatinate strings every day, split them into parts and access certain characters by index. We are used to the fact that strings are fixed-length arrays of characters, which leads to certain limitations when working with them. For instance, we cannot quickly concatenate two strings. To do this, we will at first need to allocate the required amount of memory, and then copy there the data from the concatenated strings.

Robo-Advisors: How Human Talent is Reinforced by Tech

Developments in fintech over the past few years have led to a rise in the use of robo-advisors by wealth management services. Robo-advisors have helped enhance efficiency and productivity within these services, benefits that have been passed onto clients. However the use of robo-advisors has been misinterpreted at times. Many believe that they are just algorithms that allow investment without the flaws of human emotions and decision making. This is true but the robo-advisors are backed by the knowledge and experience of humans.

Tech-based wealth management: a fashionable new trend or the future of investment advice?

Technology is transforming our lives in a variety of ways. However, certain industries (like banking, financial planning and investment advice) were lagging behind for a long time. Now even these conservative sectors are changing the way they approach business and build relationships with customers. The rise of the so-called robo-advisors is making headlines in the press. First-time investors, who are generally younger and therefore more likely to try new things, are now investing part of their savings with specialised advisory platforms.

Exact Maximum Clique for Large or Massive Real Graphs

The excellent performance reported by BBMCSP—an exact maximum clique algorithm tailored for massive real networks— in a previous post has raised a number of comments, some even questioning either the report itself or the problem’s complexity. This post gives an insight on how BBMCSP works. In the process, and similar to what happens when magicians explain their tricks, we are aware that some of the magic will be lost.

Julia Set

I always wanted to learn more about complex numbers. Not just the fact that the root of -1 was equal to i. I was particularly interested in figures with fractal structure. I wanted to understand what this meant and how to make such visualization. Having some time from work, I found a book on the theory of functions of a complex variable on the shelf and decided that it was time to start.

Social Network Analysis. Spark GraphX

Today we will learn more about the tasks of social network analysis (SNA), and review the Apache Spark library designed to analyze Big Data. We will also consider one of the components of Apache Spark, designed for the analysis of graphs — GraphX. We’ll try to understand how this library has implemented the distributed graph storage and computations on them. The provided examples will show how we can use this library in practice.

The Night of Fractals

It was a late Sunday night, and I was thinking to go to sleep, when a friend of mine sent me a picture from some website and wrote: “Beautiful!”. I drew such pictures five years ago by using the so-called escape-time algorithm. But to apply this algorithm, it was necessary to know how to partition the plane into regions for a given set of transformations. I couldn’t figure it out, and did not get back to this algorithm anymore.

Bayes’ Theorem, Predictions and Confidence Intervals

There are plenty of articles on this subject, but they do not review real-life problems. I am going to try to fix this. We use Bayes’ Theorem (a.k.a. Bayes’ law or Bayes’ rule) to filter spam in recommendation services and for ratings system. A great number of algorithms of fuzzy searches would be impossible without it. Besides, the theorem is the cause of holy wars between mathematicians. Introduction Let’s start from the very beginning.

Automatic Algorithms Optimization via Fast Matrix Exponentiation

Preface Hi! My name is Alexander Borzunov. This article is the translation of my original publication. Sharing my work with English-speaking community and happy to answer all the questions. Suppose we want to calculate a tenth million Fibonacci number with a program in Python. The function using a trivial algorithm will be calculating it for more than 25 minutes on my PC. But if we apply a special optimizing decorator, the function will give you the answer in just 18 seconds.

Using the Quick Raise of Matrices to a Power to Write a Very Fast Interpreter of a Simple Programming Language

Hello! My name is Alex Skidanov. Currently I work at MemSQL. I have recently read an article about calculating the Nth Fibonacci number in O(log N) arithmetic operations. But why would we need it in practice? — you may ask. By itself, the calculation N-th Fibonacci number may not be very interesting, but the approach with the matrices used in the article, in practice, can be applied to a much wider range of tasks.
Show me more