User:MathematicalOrchid
From HaskellWiki
(Difference between revisions)
m |
|||
| Line 12: | Line 12: | ||
==== Active ==== | ==== Active ==== | ||
| - | * | + | * Toy compression implementations in Haskell. |
| - | + | ||
| - | + | ||
| - | + | ||
| - | + | ||
==== On Hold ==== | ==== On Hold ==== | ||
| + | * ''Indoculate'' — Program to convert a single (custom) source to both HTML and LaTeX, and also do cross-linking. (Status: in production use) | ||
| + | * ''Chaos'' — chaos pendulum simulator (Status: moderately working, needs UI) | ||
| + | * ''Haktal'' — fractal generator. (Status: minimal functionality) | ||
| + | * ''HoJ'' — Haskell to Java compiler. (Status: skeletal) | ||
| + | * ''Evlor'' — Interactive Haskell step-line debugger. (Status: skeletal) | ||
* Sorting algorithm benchmarks. | * Sorting algorithm benchmarks. | ||
* Audio DSP in Haskell. | * Audio DSP in Haskell. | ||
| - | |||
* [[POV-Ray SDL project|Haskell SDL]] for [http://www.povray.org/ POV-Ray]. | * [[POV-Ray SDL project|Haskell SDL]] for [http://www.povray.org/ POV-Ray]. | ||
| Line 30: | Line 30: | ||
* Haskell type deducer. | * Haskell type deducer. | ||
* Haskell program to cause world peace. | * Haskell program to cause world peace. | ||
| + | |||
| + | === Darcs === | ||
| + | |||
| + | ==== Indoculate ==== | ||
| + | |||
| + | * <code>darcs get http://www.orphi.me.uk/darcs/Indoculate</code> | ||
| + | * <code>ghc --make MakeHTML</code> | ||
| + | * <code>ghc --make MakeSite</code> | ||
| + | * <code>ghc --make MakeLaTeX</code> | ||
| + | |||
| + | ==== Chaos pendulum simulator ==== | ||
| + | |||
| + | * <code>darcs get http://www.orphi.me.uk/darcs/Chaos</code> (Chaos pendulum simulator.) | ||
| + | |||
| + | ==== Toy Compression ==== | ||
| + | |||
| + | * <code>darcs get http://www.orphi.me.uk/darcs/ToyCompression</code> | ||
| + | * <code>ghc -O2 --make Encode</code> | ||
| + | * <code>ghc -O2 --make Decode</code> | ||
| + | * <code>Encode algorithm file</code> (Compress <code>file</code> using specified algorithm, and save as <code>file-algorithm</code>.) | ||
| + | * <code>Decode algorithm file</code> (Decompress <code>file</code> using specified algorithm, and save as <code>file-unalgorithm</code>.) | ||
| + | |||
| + | Currently working algorithms: | ||
| + | * '<code>RLE</code>': ''Run-length encoding''. Works well on files containing lots of 'runs' of the same value - e.g., pixel data. Works horribly on text. | ||
| + | * '<code>BWT</code>': ''Burrows-Wheeler transform''. Doesn't actually do any compression, but tends to make data more compressible. | ||
| + | * '<code>MTF</code>': ''Move-to-front encoding''. Again, doesn't compress, but makes the data more compressible. | ||
| + | * '<code>Fib</code>': ''Fibonacci codes''. Low numbers take up fewer bits than large numbers. | ||
| + | * '<code>LZW</code>':'' Lempel-Ziv-Welch''. Works well on just about everything! | ||
| + | |||
| + | Notes: | ||
| + | * Danger: BWT is ''extremely'' slow. It also uses ''absurd'' amounts of RAM! Run this algorithm only on small files. (Less than about 10 KB.) | ||
| + | * LZW works very well, but BWT+MTF+Fib is currently unbeaten... | ||
=== Contributed Code === | === Contributed Code === | ||
Revision as of 12:31, 9 July 2007
Contents |
1 Status
Enthusiastic Haskell newbie.
2 Main Interests
- Using Haskell to write triposcopic mathematical algorithms with only a tiny amount of code.
- Using Haskell to do seriously compute-bounded work in a multiprocessor setup.
3 Projects
3.1 Active
- Toy compression implementations in Haskell.
3.2 On Hold
- Indoculate — Program to convert a single (custom) source to both HTML and LaTeX, and also do cross-linking. (Status: in production use)
- Chaos — chaos pendulum simulator (Status: moderately working, needs UI)
- Haktal — fractal generator. (Status: minimal functionality)
- HoJ — Haskell to Java compiler. (Status: skeletal)
- Evlor — Interactive Haskell step-line debugger. (Status: skeletal)
- Sorting algorithm benchmarks.
- Audio DSP in Haskell.
- Haskell SDL for POV-Ray.
3.3 Failed
- Haskell ray tracer.
- Haskell type deducer.
- Haskell program to cause world peace.
4 Darcs
4.1 Indoculate
-
darcs get http://www.orphi.me.uk/darcs/Indoculate -
ghc --make MakeHTML -
ghc --make MakeSite -
ghc --make MakeLaTeX
4.2 Chaos pendulum simulator
-
darcs get http://www.orphi.me.uk/darcs/Chaos(Chaos pendulum simulator.)
4.3 Toy Compression
-
darcs get http://www.orphi.me.uk/darcs/ToyCompression -
ghc -O2 --make Encode -
ghc -O2 --make Decode -
Encode algorithm file(Compressfileusing specified algorithm, and save asfile-algorithm.) -
Decode algorithm file(Decompressfileusing specified algorithm, and save asfile-unalgorithm.)
Currently working algorithms:
- '
RLE': Run-length encoding. Works well on files containing lots of 'runs' of the same value - e.g., pixel data. Works horribly on text. - '
BWT': Burrows-Wheeler transform. Doesn't actually do any compression, but tends to make data more compressible. - '
MTF': Move-to-front encoding. Again, doesn't compress, but makes the data more compressible. - '
Fib': Fibonacci codes. Low numbers take up fewer bits than large numbers. - '
LZW': Lempel-Ziv-Welch. Works well on just about everything!
Notes:
- Danger: BWT is extremely slow. It also uses absurd amounts of RAM! Run this algorithm only on small files. (Less than about 10 KB.)
- LZW works very well, but BWT+MTF+Fib is currently unbeaten...
5 Contributed Code
- Library for binary
- Library for vectors
- Library for colours
- Library for PPM images
- Toy compression implementations
6 Current Unsolved Questions
- Why do Haskell language extensions exist?
- How do you do graphics in Haskell?
- How come (e.g.) Smalltalk provides 27 different types of collection, but Haskell only ever involves single-linked lists and binary trees?
- Why is slower thanputStr xs1; putStr xs2?putStr (xs1 ++ xs2)
