summaryrefslogtreecommitdiff
path: root/math/openaxiom
AgeCommit message (Collapse)AuthorFilesLines
2011-12-20Requires libffi when using ECL.asau1-1/+2
2011-12-20Ignore compilation failure on CLISP: COMPILE-FILE returns failure-pasau2-1/+18
but CLISP doesn't list any errors.
2009-12-16Dragonfly hack is no longer needed.asau1-7/+1
2009-12-16Update to OpenAxiom 1.3.0asau4-14/+154
Changes since previous release: Compiler - The compiler now treats ^ as alias for **. - The compiler now rejects ambiguous left hand sides of definitions where parameter types are left out for inference. Previously, the compiler would pick the first signature from some mostly random order, with a warning. - For categories with default implementations, the compiler can be directed to compile only the purely category part (exports), or only the default implementations (category packages). - The compiler now supports a Foreign Function Interface. In particular, signatures for external entities may be declared at capsule level. Currently, only ISO C functions are supported, but future releases may support ISO C++ and other mainstream languages. - The parsing of signature for operators has been improved. Previously, operator names needed to be quoted in signature. That is not longer needed. For instance, previously, one had to write (at category level) "*": (%,%) -> % _/_\: (%,%) -> % _not: % -> % With this release of OpenAxiom and onward, one can simply write *: (%,%) -> % /\: (%,%) -> % not: % -> % which is much simpler to read, write, and much more regular. - The compiler now supports is-case pattern matching. The new pattern matching syntax is useful for structuring retractions, and also for domain recovery from expressions of type Any. - The compiler now supports the loop control transfer operator iterate in repeat loops - previously, the construct was accepted only in scripts (not libraries). That discrepency is now ended. Interpreter - Declared variable with no specified values are now handled as if symbolic value with a specified type. - The interpreter now parses a disjunctive expression involving the 'is' operator the obvious way. E.g. Now T is Integer or T has Ring is now understood as (T is Integer) or (T has Ring) - The interpreter now handles existentially quantified or universally quantified expressions Algebra The following types have been added to OpenAxiom-1.3.0 - The domain Boolean and category BitAggregate no longer export the operation ^ for logical negation. Use the operator not which is the canonical and documented operator. - The domain InputForm now has a new exported signature parseString: String -> % for parsing expressions given as string. - The domain Boolean now belongs to the category OrderedFinite. - The domain KleeneTrivalentLogic is added. It implements Stephen Kleene's 3-valued propositional logic. - For file orinted I/O, new domains have been added: + IOMode: This domains defines three constants to indicate the direction of file I/O operations. + InputBinaryFile: This domains implements the basic input operations on binary files. + OutputBinaryFile: This domains implements the basic output operations on binary files. - The domain BinaryFile has been replaced by three specific domains: + InputBinaryFile: datatype for input file open in binary mode; + OutputBinaryFile: datatype for output file open in binary mode; + InputOutputBinaryFile: datatype for input and output file open in binary mode. - Three new categories are introduced, related to conversions: + CoercibleFrom: This category is the mirror image of the standard category CoercibleTo. + HomotopicTo: This category is the symmetrization of the category CoercibleTo. + ConvertibleFrom: This category is the mirror image of ConvertibleTo. - Previous releases defined instantiations of the domain constructor Expression as satisfying the category OrderedSet. That was both confusing and incorrect in conjunction with other algebraic structures. From now on, Expression(T) no longer satisfies OrderedSet. - Three new categories have been added: + LeftLinearSet + RightLinearSet + LinearSet The category AbelianGroup extends LeftLinearSet Integer. The parameterized category constructor LeftModule extends LeftLinearSet. Similarly, the category RightModule extends RightLinearSet. - The domain Any has been reworked. In particular, the operation domainOf, objectOf, and showTypeInOutput have been removed. Equality of two objects of domain Any is equality according to the underlying domain, if that domain belongs to the category BasicType; otherwise, it is equality of storage locations. Runtime System The Lisp backend now uses type information derived from exports and domain representation for code generation purposes.
2009-06-14Convert @exec/@unexec to @pkgdir or drop it.joerg1-4/+4
2009-06-14Remove @dirrm entries from PLISTsjoerg1-23/+1
2009-04-18Don't depend on Fortran.asau2-5/+5
CLISP and SBCL are build dependencies.
2009-04-10Update to OpenAxiom 1.2.1.asau3-10/+374
This is a minor bug fix and cleanup release. pkgsrc changes: don't require gawk, add Dragonfly support.
2008-08-28Import openaxiom-1.2.0 as math/openaxiom.ahoka5-0/+2386
Packaged by Aleksej Saushev through the pkgsrc-wip project. OpenAxiom is an open source platform for symbolic, algebraic, and numerical computations. It offers an interactive environment, an expressive programming language, a compiler, a large set of mathematical libraries of interest to researchers and practitioners of computational sciences. OpenAxiom strives to support ubiquitous, advanced, high quality open source computer algebra on major operating systems, in particular major Unix variants, GNU/Linux variants, Windows, and handheld devices. It aims at being the open source computer algebra system of choice for research, teaching, engineering, etc.