Date: | 2012-06-05 |
---|---|

Author: | Nikolaos Kavvadias |

Email: | nikos@nkavvadias.com |

Revision: | 0.0.2 (2012-06-05), 0.0.1 (2012-06-01) |

Web site: | http://www.nkavvadias.com |

Copyright: | Nikolaos Kavvadias (C) 2009, 2010, 2011, 2012 |

**a2mm**- Two matrix-matrix multiplications. Part of the PolyBench benchmark suite.
**a3mm**- Three matrix-matrix multiplications. Part of the PolyBench benchmark suite.
**ascii2ebcdic**- ASCII => EBCDIC conversion function. Original source: http://cprogramminglanguage.net/ascii-ebcdic-conversion-functions.aspx
**atsort**- C implementation for the linear extension generation algorithm as defined by Valon-Rotem. Based on Donald E. Knuth, "The Art of Computer Programming, volume 4, fascicle 2B: Algorithm V - All topological sorts".
**bitrev**- C implementation for a bit-reversal operation on unsigned chars.
**bitunzip**- C implementation of the bit-wise zip algorithm from "Algorithms for programmers".
**bitzip**- C implementation of the bit-wise zip algorithm from "Algorithms for programmers".
**c2vwalsh**- 1D Walsh transform. Original source: http://www.c-to-verilog.com
**c2vwavelet**- 1D wavelet transform. Original source: http://www.c-to-verilog.com
**c2vyuv2rgba**- YUV to RGBA color space conversion.
**circledraw**- C implementation for a circle generation algorithm. Original source: http://www.relicarium.org. Uses streamed outputs.
**cordic**- ANSI C implementation for a fixed-point universal CORDIC. The arithmetic representation used is signed fixed-point (Q2.14S). The implementation has been generated by a modified version of the simple fixed-point CORDIC tools from: http://www.dcs.gla.ac.uk/~jhw/cordic/
**dynprog**- Dynamic programming problem solver. Part of the PolyBench suite: http://sourceforge.net/projects/polybench/
**ebcdic2ascii**- EBCDIC => ASCII conversion function. Original source: http://cprogramminglanguage.net/ascii-ebcdic-conversion-functions.aspx
**edgedet**- Simple edge detection algorithm.
**editdist**- Calculates string edit distance using dynamic programming.
**epx**- Scale image data by 2x using the EPX/Scale2x/AdvMAME2x algorithm. EPX ("Eric's Pixel eXpansion") is an algorithm developed by Eric Johnston.
**erosion**- C implementation of the erosion morphological operator.
**fastdivs**- C implementation for signed integer division based on a modified version of signed long division as found in "Hacker's Delight" and Ian Kaplan's signed_divide routine.
**fastdivu**- C implementation for unsigned integer division based on a modified version of unsigned long division as found in "Hacker's Delight".
**fixsqrt**- C implementation for for an accurate fixed-point square root proposed by Ken Turkowski. A technical report detailing the algorithm can be found here: http://www.worldserver.com/turk/computergraphics/FixedSqrt.pdf
**float2half**- C implementation for a simplistic algorithm (unknown source) for float-to-half conversion.
**fsdither**- 2D Floyd-Steinberg dithering for greyscale images.
**fsme**- Full-search motion estimation for video encoding.
**fxexp**- A sample C function to compute exp() using Q16.16 fixed-point arithmetic. Source: http://www.quinapalus.com/efunc.html
**fxlog**- A sample C function to compute log() using Q16.16 fixed-point arithmetic. Source: http://www.quinapalus.com/efunc.html
**gemm**- General matrix-matrix multiplication. Part of the PolyBench suite: http://sourceforge.net/projects/polybench/
**gemver**- Scalar, vector, & matrix multiplication. Part of the PolyBench suite: http://sourceforge.net/projects/polybench/
**gesummv**- Matrix-vector product and transpose. Part of the PolyBench suite: http://sourceforge.net/projects/polybench/
**half2float**- C implementation for a simplistic algorithm (unknown source) for float-to-half conversion.
**heapsort**- C implementation of a heapsort-kind algorithm. Original source can be found at: http://homepages.cwi.nl/~tromp/pearls.html (programming pearls by John Tromp).
**htpack**- Bit packing algorithm for halftone images.
**htunpack**- Bit unpacking algorithm for halftone images.
**icbrt**- C implementation for an integer cubic root approximation algorithm.
**iexp**- C implementation for computing integer powers. Original author: Herny S. Warren (Hacker's Delight) from the following source: http://www.hackersdelight.org/HDcode/iexp.c.txt
**ilog10a**- C implementation of a program for computing integer log functions. Original source is Hacker's Delight (HDcode.zip). http://www.hackersdelight.org/HDcode/ilog.c.txt
**ilog10b**- C implementation for computing integer log base 10, with a repeated multiplication by 10. Original source is Hacker's Delight (HDcode.zip). http://www.hackersdelight.org/HDcode/ilog.c.txt
**inv_mod**- Compute the inverse of x mod y. Original source: http://bellard.org/pi/pi.c
**isqrt, isqrt1, isqrt2, isqrt3, isqrt4, isqrt5**- C implementation of various algorithms for an integer square root approximation. Original source is Hacker's Delight (HDcode.zip). http://www.hackersdelight.org/HDcode/isqrt.c.txt
**isqrt_ggems**- C implementation for an integer square root approximation algorithm as found in "Graphics Gems, Volume II".
**jacobi**- C implementation of the Jacobi transformation.
**kadane**- C implementation of Kadane's algorithm.
**knapsack**- Dynamic programming algorithm for the 0-1 knapsack problem.
**linedraw**- C implementation for Bresenham's line generation algorithm. Uses streamed outputs.
**losslessimgcmpr**- Implementation of a simple algorithm for lossless image compression.
**magicsquares**- Magic squares construction algorithm.
**mandel**- Mandelbrot ASCII fractal generator using integer arithmetic.
**matmult**- Block-based matrix multiplication algorithm.
**mc**- Motion compensation procedure for reconstructing a frame based on the corresponding motion vectors.
**pfactor**- C implementation for a basic prime factorization algorithm. Uses streamed outputs.
**power**- C implementation of a powering function with some optimizations.
**powerseries**- Polynomial approximation of elementary functions.
**pow_mod**- Computes (a^b) mod m. Original source: http://bellard.org/pi/pi.c
**rcdct**- Original 2-D DCT computed as two 1-D DCTs i.e. row column decomposition. Source: the XiRisc soft-core processor test suite.
**sierpinski**- C implementation of the ASCII-version of a Sierpinski gasket generation algorithm.
**sieve**- C implementation for prime number detection based on the sieve of Eratosthenes (without any optimizations). Source: http://rosettacode.org/wiki/Sieve_of_Eratosthenes
**smithwaterman**- This code performs the Smith-Waterman algorithm which is a wavefront algorithm that works over the two dimensional array. Source: http://www.jacquardcomputing.com/roccc/examples/systems/smith-waterman/
**sobel**- Sobel edge detection.
**sqrtabacus**- Square root by abacus algorithm. Implementation by Martin Guy @ UKC, June 1985 based on a book on programming abaci by Mr C. Woo.
**xorshift**- C implementation of "xorshift". Xorshift is a category of pseudorandom number generators designed by George Marsaglia.
**xteadec**- XTEA (eXtended Tiny Encryption Algorithm) decoder.
**xteaenc**- XTEA (eXtended Tiny Encryption Algorithm) encoder.