Aion Key Features And Capabilities

Aion is designed to help you efficiently design, develop, document, and deploy computationally intensive algorithms, simulations, and mathematical models in a single tool using an intuitive user interface.

Self Documenting

Aion makes documenting the design and implementation of your algorithm or mathematical model simple. You can mix rich markup with your algorithm using a WYSIWYG user interface. Documentation you include, in-line, with your work can include:

  • Text containing different fonts, point sizes, and styles.

  • Full control of paragraph styles, paragraph spacing and line spacing.

  • Support for different pages sizes and orientations on a per-page basis.

  • Numbered and ordered lists.

  • Tables

  • Plots, charts, images, and values generated by your algorithm or model.

You can use the documentation capabilities to do more than document the design and implementation of your algorithm or model. Through the Aion user interface, you can write detailed reports on the results of your work directly in the tool.

Using Aion, you can provide robust documentation on your algorithm without needing to maintain separate documents that can easily become inaccurate or out of date.

Your algorithm can be printed and can be exported to a number of different formats including PDF, HTML, and LaTeX. You can also export plots or mathematical elements in a number of standard image formats.

Design Is Documentation And Implementation

In addition, your algorithm or model is described using natural mathematical syntax that is embedded directly in-line with your documentation. No more traditional code to wade through. The implementation of your algorithm will be much easier to read and understand.

Through the Aion user interface, you can also run test cases or perform analysis of your algorthm, documenting the results directly in Aion.

Powerful Development Capabilities

Aion gives you the ability to use use natural mathematics to simultaneously describe and implement your algorithm.

Your algorithm can use 10 different types of data:

  • Boolean or true/false values.

  • Integers

  • Real numbers

  • Complex numbers

  • Four different types of matricies, containing:

    • Boolean values (true/false)

    • Integers

    • Real values

    • Complex values

  • Sets containing arbitrary data, including matrices, sets, and tuples

  • Tuples containing arbitrary data, including matrices, sets, and tuples

You can also work with text strings. In future Inesonic, LLC will provide additional more specialized data types such as saturating integers and finite fields.

In addition to the traditional math operators, Aion provides a rich set of more specialized operators, including:

  • Boolean or logical operators.

  • Set operators

  • Matrix operators

  • Case and conditional operations

  • Iteration operators

  • Operators used to group complex operations

Inesonic, LLC will be providing large operators such as summation, differentiation, and integration shortly.

In addition to the provided operators, Aion also provides a wide range of functions, including:

  • A wide selection of statistical functions.

  • Functions to calculate random deviates under a number of common distributions.

  • A wide selection of matrix functions.

  • A wide selection of specialized math functions.

  • Functions to load and save both images and audio.

  • Both low level and high level file functions.

Inesonic, LLC will be continually expanding our offering of supported functions and operators.

The Aion user interface will guide you while you develop your algorithm. Only operators and functions that are allowed will be enabled as you develop your algorithm. The Aion user interface will also insert parenthesis as you enter your mathematical statements to clarify the order of operations. Development will be faster and less error prone.

You can test and identify errors or debug your algorithm directly in the user interface. You can stop and restart your algorithm on command or when the algorithm is about to evaluate specific statements. You can also inspect, import, export and modify variables while debugging.

Lastly, you can optionally import portions of your algorithm or model from other files. Large efforts can be broken into smaller, more manageable, pieces that can be developed collectively. The import feature allows you to do such things as:

  • Calculate parameters or perform training in another set of files,

  • Run tests of your algorithm in a third set of files, and,

  • Write reports using output from your algorithm or model in a fourth set of files.

Of course, you can keep your entire algorithm or model contained in a single file.

Deployment

Your algorithm or model’s speed will often be limited by the slowest part of your algorithm. Aion optimizes and compiles your algorithm directly to machine code so that your model runs as fast as your hardware allows without a slow interpreter.

In addition, where possible, Aion uses features such as lazy evaluation, copy-on-write, and memoization to improve performance and reduce memory usage when handling large data structures.

When developing models, you can often use the increased performance to trade off conceptual simplicity for computational complexity. By compiling your model, you are often able to use conceptually simpler algorithms for your models. This can make your models and simulations easier to read, easier to understand, and more reliable.

You can export your algorithm as an object file or dynamic library that you can link against other programs. You no longer need to use one language to develop and prototype your algorithm and a second language to implement your algorithm. Our compiler can often yield performance comparable to what you can obtain using hand coded C, C++, or FORTRAN code.

Lastly, if needed, you can develop your own plug-ins giving your algorithm or model access to your own functions.