Centrinia
About the Centrinia Project
Programming Environment
Rationale and Future Plans
Function Systems
Downloads
Signatures
Public Key
Author
The current release of the Centrinia project is repository revision 452.

About the Centrinia Project

The Centrinia project is currently a set of modules that perform various mathematical operations. The locus of functionality is in a dynamically loaded library. In the future, the Centrinia project will be comprised of many stand-alone applications that will use the library as their kernel. These applications will be the user interface to the full functionality of Centrinia.

In the mean time, programmers can call functions in the Centrinia library either directly or indirectly through the use of wrappers. The library itself has at least two layers: a base and a secondary. The base contains speed critical functions and is written in lower level programming languages. The secondary layer contains higher level functions that are not depended upon as much as the base functions. Plans include making a tertiary section written in a custom high-level mathematical language. This tertiary layer will be the slowest in terms of both execution time and the amount of extraneous execution (such as interpretation time and function call overhead).

The Centrinia library contains, at the moment, a multiple precision arithmetic library, a random number generator, and numerous globally visible support functions. The multiple precision arithmetic library is designed to incorporate the fastest known algorithms (such as a Discrete Weighted Transform based Schönhage Strassen multiplication algorithm). The multiple precision functions are dependent upon fast hand-crafted assembly functions that comprise the lowest level of the function call heirarchy. The random number generators have two tiers. The second tier generators take a first tier generator as a parameter and generates random numbers. The first tier generators are amorphous types that are arguments to simple core generator functions. The support functions to these two primary functions of the library can be very useful by themselves. Most of the support functions are actually C macros. They serve many functions and are crucial to both the Centrinia library and the Centrinia applications.

Programming Environment

Direct use of functions is recommended only for Centrinia applications. The wrappers will serve to provide compatibility for various other libraries of similar nature. Direct use of the internal functions is not recommended at all. The library can be used in place of similar libraries such as GMP, cln, PRNG, and, in the distant future, LiDIA, Mathematica, Maple, and Matlab.

The library is based on types. One operates on types through support functions. Internally, the names have the following format: centrinia___(layer)___(type)___[type specifics]___(function name)____[function attributes]. Here, the parentheses repersent a single field whereas brackets repersent multiple fields.

Rationale and Future Plans

The internal functions have very long names. There is a reason behind this naming scheme. In the future, the Author will create a language that emphasizes speed and portability. The language will also provide namespace and attribute inclusion into the functions themselves. This will lead to functions being treated as usable "objects" that can be reused based on specifications. These specifications will completely define the functions themselves. These specifications will be a text string detailing the exact nature of the function. These specification texts will be compressed and used as the actual function name in this new language. Of course, aliases will be available to name functions to simplify programming. The aliases are only superfical as the only specification will be used to define functions. This new language will be used to implement the base layer of the library.

Function Systems

  • Natural Number Addition
  • Natural Number Subtraction
  • Natural Number Multiplication
  • Natural Number Division
  • Computation of Natural Number Greatest Common Denominators
  • Integer Addition
  • Integer Subtraction
  • Integer Multiplication
  • Integer Division
  • Integer GCD
  • Rational Addition
  • Rational Subtraction
  • Rational Multiplication
  • Rational Division
  • Polynomial Addition
  • Polynomial Subtraction
  • Polynomial Multiplication
  • Polynomial Division
  • Polynomial GCD
  • Floating Point Polynomial Root Computation
  • Number Theoretic Transform
  • Random Number Generation

Downloads

The Centrinia project is available as compressed tape archives. Currently, the author is using only bzip2 and gzip to compress the tape archives. The bzip2 archive is smaller than the gzip archive while the gzip archive can be decompressed with more software than the bzip2 archive.

In the future, a five level numbered naming scheme will be employed. The first number will be the project type. This number denotes rather the project is a multiple precision library, general math library, mathematical language, computer algebra system, and so on. The second number will be the familiar major version number. This number will denote the level of development of a the current project type. An increase by one for this number will mean significant algorithmetic changes as well as the addition of major function systems. The third number will denote the minor version. This number will denote the change in algorithms and implementation within a major version. There will not be any new function systems added for a change in this number. Note that a change in the first three numbers can lead to incompatibilities between libraries. Please let the author know what changes incompatibilities were introduced so that he can help with upgrading your application. The last two numbers denote revision. The fourth number denotes major revision. The fifth number denotes minor revision. The minor revision number having value zero will denote a, supposedly, error free distribution. A message at the top of this site will warn of any zero version distributions that contain errors. This applies only to compiled functions, not for file not in the Makefiles or the design files.

The Centrinia project availabe here is subversion revision 452, or with the Centrinia versioning system, 0.0.0.10.1.

centrinia.tar.gz (1,648,599 bytes)
centrinia.tar.bz2 (1,236,782 bytes)

Signatures

centrinia.tar.gz

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBA1dtjJkC6FS+ava0RAueWAJ9qyUrT8P0gbcrihZhEeD42s5uXmgCeIEnQ
Z9gmuPpjLDIORHDoAigk/tw=
=J6qF
-----END PGP SIGNATURE-----

centrinia.tar.bz2

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQBA1dteJkC6FS+ava0RAsQHAJ9JRrrvFRP/AFLyYYJqDw9HOMDawwCfeC31
rpK/gecRY8Ng8JOgfuXxScM=
=DQfH
-----END PGP SIGNATURE-----

Public Key

The Centrinia distribution has been signed with the following key. One can verify the validity of the tape archives by adding the public key to one's own key ring in either PGP or a variant of PGP. Just choose to verify the distribution files with the signatures and this key to make sure that the contents of the distributions have not been tampered with. One can also send private messages to the author with this key. If there is anything that should not be seen by an eavesdropper, encrypt the message with this public key and send the encrypted message to the author.

-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.2.3 (GNU/Linux)

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
=+prk
-----END PGP PUBLIC KEY BLOCK-----

Author

The author of Centrinia, Josh Liu, is a 20 year old college student studying at Georgia State University. He is currently studying Biology and Computer Science and is in his Junior year of the undergraduate program. He can be contacted with his email address at zliu2@student.gsu.edu. Please contact him with any questions, suggestions, comments, threats, ideas, or anything on your mind.