# Rhyscitlema

This website is based on the fields of Mathematics, Computer Science and Digital Electronics. There are algorithms, computer applications, digital systems and technical concepts, most of which are **new**. Everything is provided for free - **use at your own risk!**

* * Always have the ***online calculator** handy for doing **quick** “comma plus evaluate this too” on a whim! *

## Main - Computer Applications

*Rhyscitlema Graph Plotter 3D*

An application to draw any graph in a 3D virtual space, and with everything fully defined in text. A graph is a 3D object having a position in space and a direction of orientation. It is viewed through a virtual camera which is yet another object in space. An object is fully defined in a single block of text, using variables and functions defined in the *Rhyscitlema Function Expression Text* (RFET) language. Multiple objects can be defined collectively, in a block of text called *Rhyscitlema Objects Definition Text* (RODT). The text parsing method is based on the expression parsing algorithm. Developed in April 2013 - last major improvement in April 2017.

*Rhyscitlema Calculator*

An application to evaluate expressions expressed in the *Rhyscitlema Function Expression Text* (RFET) language. RFET enables the representation of mathematical expressions in plain text in simple and effective ways. Instead of only thinking of a single-value, vector or matrix, the fully general **value-structure** is used: an example is (1,(2,3,4),5). RFET enables evaluating simple expressions such as **1+1**, to evaluating advanced expressions such as **2*f(3); f(x)=4x**, to evaluating highly complex expressions in an Object-Oriented Programming model (using **inheritance** and **encapsulation**). Developed in April 2014 - last major improvement in April 2017.

*Secure Communication*

The aim is for two parties, A and B, to establish a secure communication by encrypting messages sent to each other, so that no third party, C, will be able to know what information was communicated. Also A can be B, in which case the message is not sent but is stored. Furthermore the sender can sign the message so that the receiver will verify its integrity.

*Applications source codes at*

https://github.com/rhyscitlema

## Main - Algorithms

*Generating palindromic numbers*

The pattern followed by palindromic numbers is analysed, then an algorithm is provided that implements this pattern to generate all palindromic numbers in increasing order starting from any given palindromic number, taking constant time per number generated. Finally a purely mathematical method is derived that computes the nth palindromic number, in time proportional to the number of digits of n. Developed in April 2013.

*Expression parsing algorithm*

A new, simple and very efficient iterative algorithm to parse a mathematical expression into a structure which a computer can easily evaluate. The simplest structure used is the Binary Expression Tree. The stack array is then used for optimal space efficiency. The algorithm performance is O(n). It can be extended to parsing of computer application source codes inside a compiler. Originally developed to parse the equation of a graph in the Graph Plotter 3D software. Developed in December 2013 - last major improvement in February 2015.

*Generating prime numbers*

A new, simple and efficient algorithm to generate prime numbers progressively. It turns out to be a *non-sieve* version of the *sieve of Eratosthenes*. It is based on generating all integers progressively starting from 2, taking O(n log n) time and O(sqrt(n)) space, where n is the largest integer generated so far. An improved version turns out to be a *non-sieve* version of the *sieve of Euler*. It has at its core the fundamental nature of prime numbers, which is used to prove the twin prime conjecture. Developed in December 2015 - last major improvement in May 2016.

*Maximum bipartite matching*

A new and very efficient algorithm to solve the maximum matching problem for an unweighted graph, in O(E log V) time where E and V are respectively the number of edges and vertexes of the graph. It consists of two main parts: a simple vertex get-and-match traversal, followed by an improved backtracking-search for any residual unmatched vertexes. Developed in July 2016 - last major improvement in July 2017.