# Rhyscitlema

This website is based on the fields of Mathematics, Computer Science and Digital Electronics. There are algorithms, computer applications, digital systems and related technical concepts, all provided as part of what shall become the Rhyscitlema Ecosystem.

* 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.

### 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.