|
| ||||||||
| 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 |
|
|
|
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)
|
|
Signatures |
|
|
|
|
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-----
|
|
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. |
|