1. 软件介绍
DoConis
--------
a Computer Algebra program written in a purely functional, non-strict language Haskell.
Itjoins the categorial approach to the mathematical computation expressed via theHaskell type classes, and explicitprocessing of the domain descriptionterms.
Categorialapproach means that
-------------------------------
arithmeticand some other operations are defined under the verygeneric assumptions:"over any Euclidean ring", over any field,and so on,
theDomain Constructors are supported:
Fraction, Polynomial,Residue ring, and others,
thatis certain set of operations are defined automatically, following the domainconstructors.
Abilities
---------
(mostly,commutative algebra)
Mathematicallibrary:
*Operations with permutations
*Linear algebra over an Euclidean domain: reduction to the staircase anddiagonal forms of matrix, solving a system,
*Operations with fractions over a ring with GCD,
*Polynomial arithmetic in R[x1...xn], R a commutativering, various kinds of polynomialrepresentation
(univariate, multivariate,"recursive" form ...)
*g.c.d in R[x1...xn], R a factorial ring
*Factorization of bivariate polynomial over any finite field k, buildingfinite extension of k for the given dimension,
Hensel lift in R[x], for an Euclidean ring R.
*Groebner basis and syzygy generators in a free module over R[x1...xn], R an Euclidean ring;
*Some support for non-commutative polynomials over a commutative ring;
*Symmetric function package;
Categoryhierarchy expressed partially via the data classes:
*Set, Semigroup, Group, Ring, LinSolvRing ... LeftModule ...
*operations with the description terms of Subset, Subgroup, Subring, Ideal...
Domainconstructors:
*Permutation
*Fraction field for a gcd-ring
*Direct product of Sets, (semi)Groups, Rings, Free (vector) module over a ring
*Matrix algebra over a commutative ring
*Polynomial algebra over a commutative ring: UPol, Pol, RPol models
*Vector module over a ring P, maybe, with Groebner bases structure
*Residue ring by the ideal: ResidueI,ResidueE models for the generic and Euclidean case.
Propertyprocessing:
*evaluation of certain small set of the most important algebraic property values is supported, such as Finite, IsCyclicGroup, IsMaximalIdeal, andothers.
官方网站:
http://www.botik.ru/pub/local/Mechveliani/docon/ (Russian site),
ftp.botik.ru/pub/local/Mechveliani/docon/ (same site),
http://www.haskell.org/docon/distrib/ (USA site)
2. 软件版本
本文以docon2.11及配套的ghc-6.8.1-x86_64-unknown-linux.tar.bz2为例。
3. 安装前要求
3.1. 需要ghc
我们推荐使用ghc-6.8.1。
4. 软件编译安装
4.1. 上传文件
上传源代码docon-2.11.zip和ghc-6.8.1-x86_64-unknown-linux.tar.bz2到/public/sourcecode目录下
4.2. 编译ghc
bunzip ghc-6.8.1-x86_64-unknown-linux.tar.bz2
tar xvfghc-6.8.1-x86_64-unknown-linux.tar
cd ghc-6.8.1
配置环境
./configure--prefix=/public/software/ghc-6.8.1
编译
make install
注册环境变量
echo “exportPATH=/public/software/ghc-6.8.1/bin:$PATH” >> /etc/profile.d/docon.sh
chmod 755/etc/profile.d/docon.sh
source/etc/profile.d/docon.sh
4.3. 编译docon
解压和环境准备
cp docon-2.11.zip/public/software/
cd /public/software/
unzip docon-2.11.zip
chmod 755 –R /public/software/docon
echo “export doconSource=/public/software/docon/source” >> /etc/profile.d/docon.sh
echo “export myCompilation= ...” >>/etc/profile.d/dodoc.sh
echo “echo doconCpOpt=-fglasgow-exts -fallow-undecidable-instances -fallow-overlapping-instances -fno-warn-overlapping-patterns-fwarn-unused-binds -fwarn-unused-matches -fwarn-unused-imports” >>/etc/profile.d/dodoc.sh
source /etc/profile.d/docon.sh
cd $doconSource
根据实际情况修改Makefile文件,如:
doconSource = /public/software/docon/source
configure:
runhaskell Setup.hs configure --ghc --prefix=/public/software/docon/source/inst-v
# \--enable-library-profiling
build:
runhaskell Setup.hs build
install:
runhaskell Setup.hs install --user
编译
make configure
make build
make install
5. 测试算例
cd $doconSource/demotest
ghc $doconCpOpt -Onot --make Main
./Main