Selected algorithmic IPs generated by HercuLeS

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.