Download Shareware and Freeware Software for Windows, Linux, Macintosh, PDA

line Home  |  About Us  |  Link To Us  |  FAQ  |  Contact

Serving Software Downloads in 976 Categories, Downloaded 32.293.528 Times

liboil 0.3.12

  Date Added: February 07, 2010  |  Visits: 727


Report Broken Link
Printer Friendly Version

Product Homepage
Download (74 downloads)

Liboil is a library of simple functions that are optimized for various CPUs. These functions are generally loops implementing simple algorithms, such as converting an array of N integers to floating-point numbers or multiplying and summing an array of N numbers. Such functions are candidates for significant optimization using various techniques, especially by using extended instructions provided by modern CPUs (Altivec, MMX, SSE, etc.). Many multimedia applications and libraries already do similar things internally. The goal of this project is to consolidate some of the code used by various multimedia projects, and also make optimizations easier to use by a broader range of applications. As of the liboil-0.3.0 release, Im actively encouraging other open-source projects to begin using liboil. Im happy to do much of work converting projects to use liboil, and especially, adding function classes and implementations to liboil that may be needed. Liboil does not require GCC to build, but since it uses GCC-style inline assembly heavily, using GCC is strongly recommended. Versions of GCC prior to 3.2 are known to have problems compiling liboil correctly. GLib-2.0 is recommended to build a few of the examples, but is not required for anything that is installed. Liboil may be modified and distributed in accordance with a very liberal license commonly referred to as "Two-Clause BSD". This license was chosen to make liboil useful to as many open-source projects as possible, and has the side effect of also allowing liboil to be used by proprietary applications. Liboil has a number of function classes, which are primarily seen by a developer using the library as actual functions. One such function is: void oil_tablelookup_u8 (uint8_t *dest, int dstr, uint8_t *src, int sstr, uint8_t *table, int tablestride, int n); This function performs a table lookup for each element in the src array, and puts the results in the dest array. In actuality, oil_tablelookup_u8 is a preprocessor macro that generates the correct code to call an indirect function. Each function class has one or more function implementations, which are real functions that perform the exact same action as defined by the documentation for the function. Each class has one implementation that is the reference implementation. This reference implmentation is used to test the accuracy of other implementations. Presumably, the non-reference implementations can perform the action faster than the reference implementation. Thus, the liboil initialization code (at runtime) checks each implementation in a class to determine the fastest implementation. Once this is done, the classs indirect function pointer points to the optimal implementation. After this, any calls to the function class (such as oil_tablelookup_u8() described above) will automatically be routed to the fastest implementation. Implementations can be disabled either at compile time (e.g., assembly code for the wrong architecture) or at run time (e.g., implementation uses unsupported opcodes). This is done automatically. In addition, implementations may be disabled because they do not produce the same results as the reference implementation. All of the function classes will be API and ABI stable through the lifetime of the 0.3 series. In addition, the 0.4 series will include a compatibility library that will provide the 0.3 ABI. This allows multiple liboil-using libraries to be linked into the same application without regard to using the same liboil ABI. New ABI versions (0.4, 0.5, etc.) are expected no less than 6 months apart. It is planned that all future versions of liboil will support at least two liboil ABI versions. Whats New in This Release: - Support for the jpeg decoder was improved. - C++ support was improved. - Various speedups and smaller improvements were done..

Requirements: No special requirements
Platforms: Linux
Keyword: Abi Cpus Function Functions Gcc Implementation Liboil Libraries Library Programming Simple Functions Using
Users rating: 0/10

License: Freeware Size: 706.56 KB
Communication  -  Digital implementation of RC low pass filter 1.0
Derives the transfer function for digital implementation of a first order RC low pass filter and plots the step and frequency response.For details, refer to the post:
10 KB  
Libraries  -  AspectES 0.1
AspectES is an implementation of Aspect-Oriented Programming in JavaScript 1.5, as standardized by EcmaScript Specification 262. AspectES project contains core classes that enable software engineers to gracefully develop JavaScript applications...
1.1 MB  
Communication  -  Stream Programming 1.0
This is a set of functions written to teach the stream programming base theory. I think that this can be useful to the programmers that don't know what the stream programing is and manage signals or (infinite) sequences of entities.
30.72 KB  
Development Tools  -  diapergluforth 0.5
diapergluforth script helps you to access functions in shared object libraries without recompile them against the library header.
Communication  -  Short-time Energy and Zero Crossing Rate 1.0
This folder contains two simple functions (zerocross and energy) to compute STE and STZCR.The script zcr_ste_so.m uses these two and other functions (included) to compute the STE and STZCRof the word 'so'.See the respective function help for more...
61.44 KB  
Communication  -  Separable N-Dimensional Convolution 1.0
This function is an implementation of N-dimensional convolution for the special case when the convolution kernel is separable.A continuous function f(x1, x2, ... xN) is considered separable if there exist N functions f1, f2, ... fN such that f(x1,...
10 KB  
Business  -  Business Functions Basic Edition 1.25
Library of 100+ functions for Business Planning and Budgeting with MS-Excel.
4.88 MB  
Libraries  -  AA Helper Library 0.1
AA Helper Library is a basic library of helper functions for AAlib. Inspiration that started this is AAJM, when I implemented circles and lines. More or less on a whim, I turned it into a more convincing project. Yes, Im fully aware of the...
18.43 KB  
Libraries  -  INVSTR 1.0
INVSTR is a library of C functions that follow the behavior of the standard library string functions, but starting all searches and the like from the end of the string rather than the start. Whats New in This Release: This initial release...
10.24 KB  
Libraries  -  Language::Logo 1.000
Language::Logo Perl module is an implementation of the Logo programming language. SYNOPSIS use Language::Logo; my $lo = new Logo(update => 20); $lo->command("setxy 250 256"); $lo->command("color yellow"); $lo->command("pendown"); #...
16.38 KB  
Programming  -  Cedalion for Linux 0.2.6
Cedalion is a programming language that allows its users to add new abstractions and define (and use) internal DSLs. Its innovation is in the fact that it uses projectional editing to allow the new abstractions to have no syntactic limitations.
471.04 KB  
Programming  -  Math::GMPf 0.29
Math::GMPf - perl interface to the GMP library's floating point (mpf) functions.
30.72 KB  
Programming  -  Net::Wire10 1.08
Net::Wire10 is a Pure Perl connector that talks to Sphinx, MySQL and Drizzle servers. Net::Wire10 implements the low-level network protocol, alias the MySQL wire protocol version 10, necessary for talking to one of the aforementioned...
30.72 KB  
Programming  -  logilab-common 0.56.2
a bunch of modules providing low level functionnalities shared among some python projects devel Please note that some of the modules have some extra dependencies. For instance, logilab.common.db will require a db-api 2.0 compliant...
174.08 KB  
Programming  -  OpenSSL for linux 1.0.0a
The OpenSSL Project is a collaborative effort to develop a robust, commercial-grade, full-featured, and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a...
3.83 MB  
Libraries  -  wolfSSL 3.15.3
The wolfSSL embedded SSL/TLS library is a lightweight SSL library written in ANSI standard C and targeted for embedded and RTOS environments - primarily because of its small size, speed, and feature set. It is commonly used in standard operating...
3.88 MB  
Libraries  -  EuGTK 4.8.9
Makes it easy to develop good- looking, fast, cross-platform programs that run on Linux, OS X, and Windows. Euphoria is a very fast interpreted/compiled language with straight-forward syntax. EuGTK allows programming in a clean, object-oriented...
10.68 MB  
Libraries  -  Linux User Group Library Manager 1.0
The LUG Library Manager is a project to help Linux User Groups start their own library. A LUG library is helpful to the community at large because it increases access to information, and gives everyone the opportunity to become more knowledgeable.
5.35 KB  
Libraries  -  Module::MakefilePL::Parse 0.12
Module::MakefilePL::Parse is a Perl module to parse required modules from Makefile.PL. SYNOPSIS use Module::MakefilePL::Parse; open $fh, Makefile.PL; $parser = Module::MakefilePL::Parse->new( join("", ) ); $info = $parser->required;...
8.19 KB  
Libraries  -  sqlpp 0.06
sqlpp Perl package is a SQL preprocessor. sqlpp is a conventional cpp-alike preprocessor taught to understand SQL ( PgSQL, in particular) syntax specificities. In addition to the standard #define/#ifdef/#else/#endif cohort, provides also...
10.24 KB