1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
|
Omega+ and CodeGen+ 2.2 open source release
See LICENSE file for copyright information.
Omega+ is a mathematical library for manipulating integer linear
constraints over integer variables in first order logic, and
operations on integer sets and their mappings. CodeGen+ is a code
generation library by scanning the points in a union of polytopes.
A command-line interface to libraries is also included.
What is new?
============
version 2.2:
* Redesigned polyhedra scanning which generates higher quality code
than before especially for complex set of polyhedra.
* New SimpleHull for hull approximation (deprecate Hull).
* Command line editing and history support in calculator.
version 2.1:
* Updated "effort" parameter's meaning in MMGenerateCode: value n
(n >= 0, default to 1) means that control overheads are removed
from all n-depth innermost loops.
* Enhanced stride handling in the code generation.
* Support code generation for a set of iteration spaces with different
dimensionality.
* New ConvexRepresentation that reduces the number of conjuncts in a union
(deprecate CheckForConvexPairs and CheckForConvexRepresentation).
* Handle floor/ceiling defined variables cleanly in output code.
* Use namespace omega for the library.
* New closure functions contributed by Klimek Tomasz (R^+ and R^@).
version 2.0:
* Improved internal code generation interface so that it generates both
string and rose ouput now, and more easily extendable for new compiler
intermediate representations.
* Improved gist function so that integer modular constraints are handled
more gracefully.
* Merge duplicate if-conditions in generated code, which might still miss
a few opportunities due to the way AST is constructed.
* Correct output/input variable substitution for non-unimodular
mapping relations.
* Deprecate Omega's assert/Exit interface.
* Some fixing in calculator's parsing and interactive interface.
version 1.2 (Omega Project):
* Support for code generation with memory mappings, as described in
Tina Shen's MASPLAS '98 paper. This is available in oc via the
tcodegen function; see examples/calc/mm* for examples.
* Use of the compile-time flags -DSTILL_CHECK_MULT=1 -DNDEBUG turns off
all assertions and chechk _except_ some checks for integer overflow
during variable elimination in the omega core. Unless you know a priori
that overflow cannot occur, you should use this instead of just plain
-DNDEBUG when optimizing.
* You can now use "assertUnsatisfiable relation" to cause oc to quit if
"relation" could be satisfiable. This is mainly useful when running oc
in a script.
version 1.1 (Omega Project):
* An exact convex hull computation.
* An improved system for handling inexact relations, including taking
upper and lower bounds, checking for subsets, and checking tautologies.
* Better handling of existentially quantified variables: we can now
negate and generate code for sets like:
{[i]: 1 <= i <= n && exists (alpha: i <= 10*alpha <= i+k)}.
* An Example operator, that gives a sample solution to set or relation.
version 0.90 (Omega Project):
* Initial release.
DIRECTORIES
===========
omega/
omega_lib/ source files for the Omega+ library
code_gen/ source files for the CodeGen+ library
omega_calc/ source files for the calculator
examples/ script examples using calculator
c_code/ code examples for using libraries
bin/ links to executables: oc
lib/ links to libraries: libomega.a, libcode_gen.a
include/ links to header files
DOCUMENTATION AND QUESTIONS
===========================
There are only old documents from the Omega Project under doc/ subdirectory
for now.
Software website:
http://www.chunchen.info/omega
For questions, bug reports or suggestions, please contact:
mailto:riverofdreams@gmail.com
|