Skip to content
/ alchemy Public

An extensible computer algebra library written in Scheme (this is a mirror).

License

Notifications You must be signed in to change notification settings

1dotd4/alchemy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

83 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alchemy

Alchemy is an extensible computer algebra library written in portable R7RS Scheme2. Its aim is to provide a meaningful way to express and use mathematical objects. A notable goal it tries to achieve is breaking cryptography without fighting the library as it should be as easy as parsing the data and calling a function, not harder. It tries to be readable and portable. Due to Scheme nature, it is easy to extend.

The rationale behind this are building my own birdfeeder and I do not really like Python, Sagemath, MAGMA, et al.'s approach. By other means, luck is when preparation meets opportunity. Then, I hope this code publication is one of Type II. Moreover, this project is meant to be a continuous endeavour based on my knowledge.

Read more in the documentation.

  1. It is implemented starting from CHICKEN Scheme because it is the most portable, complete, and simple Scheme I could find.

Installation guide

CHICKEN Scheme is mainly used. We list the SRFI used and then we provide the line to install all packages for CHICKEN.

TaskSRFI import
List Library1
Homogeneous numeric vector datatypes4
String Library13
Source of Random Bits27
Basic Format Strings28
Sorting and Merging95
Bitwise Operations151
String Library (reduced)152
String-notated bytevectors207
Flexible curried procedures232
chicken-install r7rs srfi-1 srfi-4 srfi-13 srfi-27 srfi-95 srfi-151 srfi-152 srfi-207 srfi-232 linenoise trace

It is also suggested to create a config file ~/.csirc.

(import linenoise)
(current-input-port (make-linenoise-port))

Startup

  • Test library with csi -R r7rs src/alchemy.scm -s src/.../library.test.scm
  • Run with csi -R r7rs src/alchemy.scm

Enhancement booklet

0.1b1

Basic functions, algebraic structures, and combinators. See documentation.

Planned

  • Berlekamp's algorithm for polynomial factorization
  • Berlekamp–Massey algorithm
  • Distributed computation

Wish to

  • Hensel lifting

About

An extensible computer algebra library written in Scheme (this is a mirror).

Topics

Resources

License

Stars

Watchers

Forks