Vincent St-Amour
c587038b33
The imaginary parts of reals are ignored when doing complex division.
2010-07-16 12:22:15 -04:00
Vincent St-Amour
443d8b9f91
Fixnums and integers can now be coerced for complex operations.
2010-07-16 12:22:15 -04:00
Vincent St-Amour
c645aa7ebc
The imaginary parts of inexact reals are ignored when doing complex multiplication.
2010-07-16 12:22:15 -04:00
Vincent St-Amour
748e9e47ad
The imaginary parts of inexact reals are ignored when doing complex
...
addition or subtraction.
2010-07-16 12:22:13 -04:00
Vincent St-Amour
025af5b815
Added coercions for floats with unboxed complex operations.
...
However, this generates superfluous operations involving their
imaginary part of 0.
2010-07-16 12:22:13 -04:00
Vincent St-Amour
fff71e6a1d
Enabled optimization of complex conjugate at the top level of complex operations.
2010-07-16 12:22:12 -04:00
Vincent St-Amour
063211d922
Added unboxed complex conjugate.
2010-07-16 12:22:12 -04:00
Vincent St-Amour
0b0da84eba
Added optimizations for iterating over vectors and strings.
2010-07-16 12:22:12 -04:00
Vincent St-Amour
1e550139aa
Added dead code elimination.
2010-07-16 12:22:11 -04:00
Vincent St-Amour
58fe07ad70
Better internal error reporting.
2010-07-16 12:22:11 -04:00
Vincent St-Amour
b7229487a5
Various fixnum unsafe operations improvements.
2010-07-16 12:22:11 -04:00
Vincent St-Amour
4a8113eac6
Added types for sequence functions.
2010-07-16 12:22:10 -04:00
Vincent St-Amour
85b96a98b3
Fixed the type for fxrshift.
2010-07-16 12:22:10 -04:00
Vincent St-Amour
8c840a2282
Added types for byte-string I/O functions.
2010-07-16 12:22:09 -04:00
Vincent St-Amour
3dbbd6d3fc
Added types for integer/bytes functions.
2010-07-16 12:22:09 -04:00
Vincent St-Amour
abee5a4db7
Added type for collect-garbage.
2010-07-16 12:22:09 -04:00
Ryan Culpepper
07f57aac9b
Added uses of unstable/struct
2010-07-13 12:07:47 -06:00
Robby Findler
41cfcbe862
rewrote an ->d contract so that it would work with a let*-style scoping
2010-07-10 10:01:25 -05:00
Sam Tobin-Hochstadt
e28b60e44f
remove debugging printf
2010-07-09 14:06:46 -04:00
Sam Tobin-Hochstadt
d030d0631d
Fix missing unquote
2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
a84796d8d7
add variance helper functions
2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
c6fb95d44d
add `make-constant'
2010-07-09 13:52:39 -04:00
Sam Tobin-Hochstadt
898c92eb1e
generalize inferred types for invariant positions
2010-07-09 13:52:39 -04:00
Vincent St-Amour
8505bd8bca
Removed a stray TODO comment.
2010-07-08 18:29:16 -04:00
Vincent St-Amour
dbda43ac6b
Pushed optimizations to auxiliary syntax classes.
2010-07-08 18:29:15 -04:00
Vincent St-Amour
c3f46cc8a6
Refactoring of the optimizer.
2010-07-08 18:29:15 -04:00
Vincent St-Amour
24aad77da3
Moved Typed Scheme's optimizer to its own subdirectory.
2010-07-08 18:29:15 -04:00
Vincent St-Amour
ea8523bd63
Fixed pessimization of some complex code.
2010-07-07 22:08:51 -04:00
Vincent St-Amour
7853d33349
Improved unboxed complex operations.
...
Intermediate results are kept as unboxed floats as long as we stay
within complex arithmetic code.
2010-07-07 19:42:56 -04:00
Vincent St-Amour
7921074eef
Avoid boxing intermediate results when doing multiple complex
...
operations in a row.
However, because of values and let-values, we lose float unboxing.
If we have a single complex operation, this is much slower than my
previous implementation (though still faster than generic
operations). With 2 complex operations, the new implementation becomes
faster.
2010-07-07 19:42:55 -04:00
Vincent St-Amour
de52d2ce9f
Avoided duplicate computation in inexact complex division.
2010-07-07 19:42:55 -04:00
Vincent St-Amour
3fb69bc764
Generic inexact complex arithmetic operations are now replaced with
...
the right combinations of unsafe float operations.
2010-07-07 19:42:54 -04:00
Vincent St-Amour
e52d63ee68
Added an optimization for vector-length of known-length vectors.
2010-07-07 19:42:54 -04:00
Vincent St-Amour
eb7fc7a965
Have type ascriptions record the ascribed type in the type table.
2010-07-07 19:42:54 -04:00
Sam Tobin-Hochstadt
e865380f6f
Add typeof mappings only to original form.
2010-07-06 14:09:46 -04:00
Vincent St-Amour
389a20795a
Added support for make-flrectangular, flreal-part, flimag-part and
...
their unsafe counterparts to Typed Scheme and its optimizer.
2010-07-02 20:58:30 -04:00
Vincent St-Amour
556734a223
Added coercion of fixnums to floats to the optimizer.
2010-07-02 20:58:29 -04:00
Vincent St-Amour
a6d11a1df0
Added struct optimizations.
2010-07-02 20:58:28 -04:00
Sam Tobin-Hochstadt
0e400291e7
Fix inference for heterogenous vectors.
2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
da3b4ed543
Use `define-type' to make docs clearer.
2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
219682bbbe
Refactoring of tc-app.
...
- Move `check-below' into its own module
- Move `tc/apply' to its own unit
- Move `tc/funapp' and `tc/funapp1' to own module, outside of unit
2010-07-02 17:25:07 -04:00
Sam Tobin-Hochstadt
570df7d665
Generalize fixed-length lists to listofs.
...
Closes PR10057.
2010-07-02 17:25:07 -04:00
Vincent St-Amour
ed4f7b7bd7
Fixed make-vector's type to reflect generalization on vectors.
2010-07-02 15:48:08 -04:00
Vincent St-Amour
40988d6d54
Added support for recursive types to vector-ref and vector-set!.
2010-07-02 15:48:07 -04:00
Vincent St-Amour
458b6b65c9
Added optimization when iterating over lists.
2010-07-02 15:48:06 -04:00
Vincent St-Amour
f79f617ee8
Calls to vector now return heterogenous vectors, to preserve length
...
information.
2010-07-02 15:48:03 -04:00
Vincent St-Amour
843621398b
Fixed types for the unsafe versions of vector-length.
2010-07-02 15:48:03 -04:00
Vincent St-Amour
8c25e46141
Literal vectors are now given HeterogenousVector types to preserve
...
length information.
2010-07-02 15:48:00 -04:00
Vincent St-Amour
351de3f767
Fixed the behavior of the optimizer on sqrt.
2010-07-02 15:47:58 -04:00
Vincent St-Amour
cdfbbc5476
Fixed the type of real->decimal-string.
2010-07-02 15:47:56 -04:00