15942N/A<!
DOCTYPE REFENTRY PUBLIC "-//Sun Microsystems//DTD DocBook V3.0-Based SolBook Subset V2.0//EN" [
15942N/A<!--ArborText, Inc., 1988-1999, v.4002-->
15942N/A<!
ENTITY suncopy "Copyright (c) 2009 Sun Microsystems, Inc. All Rights Reserved.">
15942N/A<
refmeta><
refentrytitle>&cmd;</
refentrytitle><
manvolnum>3</
manvolnum>
15942N/A<
refmiscinfo class="date">20 Feb 2009</
refmiscinfo>
15942N/A<
refmiscinfo class="sectdesc">&man1;</
refmiscinfo>
15942N/A<
refmiscinfo class="software">&release;</
refmiscinfo>
15942N/A<
refmiscinfo class="arch">generic</
refmiscinfo>
15942N/A<
refmiscinfo class="copyright">&suncopy;</
refmiscinfo>
15942N/A<
indexterm><
primary>&cmd;</
primary></
indexterm><
indexterm><
primary>
15942N/A<
refnamediv id="liboil-03-3-name"><
refname>&cmd;</
refname>
15942N/A<
refpurpose>Library of optimized functions</
refpurpose></
refnamediv>
15942N/A<
refsect1 id="liboil-03-3-desc"><
title>&desc-tt;</
title>
15944N/A<
literal>&cmd;</
literal> is a library of simple functions that are optimized
15944N/Afor various CPUs. These functions are generally loops implementing simple
15942N/Aalgorithms, such as converting an array of N integers to floating-point numbers
15942N/Aor multiplying and summing an array of N numbers. Such functions are candidates
15942N/Afor significant optimization using various techniques, especially by using
15942N/Aextended instructions provided by modern CPUs (Altivec, MMX, SSE, etc.).
15942N/ALiboil has a number of function classes, which are primarily seen by a
15942N/Adeveloper using the library as actual functions. One such function is:
15942N/A * void oil_tablelookup_u8 (uint8_t *dest, int dstr,
15942N/A uint8_t *src, o int sstr, uint8_t *table,
15942N/AThis function performs a table lookup for each element in the src array, and
15942N/Aputs the results in the dest array. In actuality, oil_tablelookup_u8 is
15942N/Acurrently implemented as a preprocessor macro that generates the correct code
15942N/AEach function class has one or more function implementations, which are real
15942N/Afunctions that perform the exact same action as defined by the documentation
15942N/Afor the function. Each class has one implementation that is the reference
15948N/Aimplementation. This reference implementation is used to test the accuracy of
15942N/APresumably, the non-reference implementations can perform the action faster
15942N/Athan the reference implementation. Thus, the liboil initialization code (at
15942N/Aruntime) checks each implementation in a class to determine the fastest
15942N/Aimplementation. Once this is done, the class's indirect function pointer points
15942N/Ato the optimal implementation. After this, any calls to the function class
15942N/A(such as oil_tablelookup_u8() described above) will automatically be routed to
15942N/A<
refsect1 id="liboil-03-3-file"><
title>&file-tt;</
title>
15942N/A<
para>The following files are used by this application:</
para>
15942N/A<
variablelist termlength="wholeline">
15942N/A<
varlistentry><
term><
filename>/
usr/
lib/&cmd;.so</
filename> </
term><
listitem>
15942N/A<
para>&cmd; shared library</
para></
varlistentry>
15942N/A<
para>Location of developer documentation</
para>
15942N/A<
refsect1 id="liboil-03-3-attr"><
title>&attr-tt;</
title>
15942N/A<
para>See <
olink targetdocent="REFMAN5" localinfo="attributes-3"><
citerefentry>
15942N/A<
refentrytitle>attributes</
refentrytitle><
manvolnum>5</
manvolnum></
citerefentry></
olink>
15942N/Afor descriptions of the following attributes:</
para>
15942N/A<
tgroup cols="2" colsep="1" rowsep="1"><
colspec colname="COLSPEC0" colwidth="1*">
15942N/A<
colspec colname="COLSPEC1" colwidth="1*">
15942N/A<
row><
entry align="center" valign="middle">ATTRIBUTE TYPE</
entry><
entry align="center" 15942N/Avalign="middle">ATTRIBUTE VALUE</
entry></
row>
15942N/A<
row><
entry colname="COLSPEC0"><
para>Interface stability</
para></
entry><
entry 15942N/Acolname="COLSPEC1"><
para>Volatile</
para></
entry></
row>
15942N/A<
refsect1 id="liboil-03-3-also"><
title>&also-tt;</
title>
15942N/A<!--Reference to another man page--> 15942N/A<!--Reference to a Help manual--> 15942N/A<
citerefentry><
refentrytitle>oil-bugreport</
refentrytitle><
manvolnum>1</
manvolnum></
citerefentry>,
15942N/A<
citerefentry><
refentrytitle>attributes</
refentrytitle><
manvolnum>5</
manvolnum></
citerefentry>,
15942N/A<
citerefentry><
refentrytitle>gnome-interfaces</
refentrytitle><
manvolnum>5</
manvolnum></
citerefentry>