1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
  
     | 
    
      <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<!-- Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013 The GSL Team.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3 or
any later version published by the Free Software Foundation; with no
Invariant Sections and no cover texts.  A copy of the license is
included in the section entitled "GNU Free Documentation License". -->
<!-- Created by GNU Texinfo 5.1, http://www.gnu.org/software/texinfo/ -->
<head>
<title>GNU Scientific Library – Reference Manual: Index Look-up and Acceleration</title>
<meta name="description" content="GNU Scientific Library – Reference Manual: Index Look-up and Acceleration">
<meta name="keywords" content="GNU Scientific Library – Reference Manual: Index Look-up and Acceleration">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="index.html#Top" rel="start" title="Top">
<link href="Function-Index.html#Function-Index" rel="index" title="Function Index">
<link href="Interpolation.html#Interpolation" rel="up" title="Interpolation">
<link href="Evaluation-of-Interpolating-Functions.html#Evaluation-of-Interpolating-Functions" rel="next" title="Evaluation of Interpolating Functions">
<link href="Interpolation-Types.html#Interpolation-Types" rel="previous" title="Interpolation Types">
<style type="text/css">
<!--
a.summary-letter {text-decoration: none}
blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
div.indentedblock {margin-left: 3.2em}
div.lisp {margin-left: 3.2em}
div.smalldisplay {margin-left: 3.2em}
div.smallexample {margin-left: 3.2em}
div.smallindentedblock {margin-left: 3.2em; font-size: smaller}
div.smalllisp {margin-left: 3.2em}
kbd {font-style:oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
pre.smalldisplay {font-family: inherit; font-size: smaller}
pre.smallexample {font-size: smaller}
pre.smallformat {font-family: inherit; font-size: smaller}
pre.smalllisp {font-size: smaller}
span.nocodebreak {white-space:nowrap}
span.nolinebreak {white-space:nowrap}
span.roman {font-family:serif; font-weight:normal}
span.sansserif {font-family:sans-serif; font-weight:normal}
ul.no-bullet {list-style: none}
-->
</style>
</head>
<body lang="en" bgcolor="#FFFFFF" text="#000000" link="#0000FF" vlink="#800080" alink="#FF0000">
<a name="Index-Look_002dup-and-Acceleration"></a>
<div class="header">
<p>
Next: <a href="Evaluation-of-Interpolating-Functions.html#Evaluation-of-Interpolating-Functions" accesskey="n" rel="next">Evaluation of Interpolating Functions</a>, Previous: <a href="Interpolation-Types.html#Interpolation-Types" accesskey="p" rel="previous">Interpolation Types</a>, Up: <a href="Interpolation.html#Interpolation" accesskey="u" rel="up">Interpolation</a>   [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
<hr>
<a name="Index-Look_002dup-and-Acceleration-1"></a>
<h3 class="section">27.4 Index Look-up and Acceleration</h3>
<p>The state of searches can be stored in a <code>gsl_interp_accel</code> object,
which is a kind of iterator for interpolation lookups.  It caches the
previous value of an index lookup.  When the subsequent interpolation
point falls in the same interval its index value can be returned
immediately.
</p>
<dl>
<dt><a name="index-gsl_005finterp_005fbsearch"></a>Function: <em>size_t</em> <strong>gsl_interp_bsearch</strong> <em>(const double <var>x_array</var>[], double <var>x</var>, size_t <var>index_lo</var>, size_t <var>index_hi</var>)</em></dt>
<dd><p>This function returns the index <em>i</em> of the array <var>x_array</var> such
that <code>x_array[i] <= x < x_array[i+1]</code>.  The index is searched for
in the range [<var>index_lo</var>,<var>index_hi</var>].  An inline version of this function is used when <code>HAVE_INLINE</code> is defined.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005finterp_005faccel_005falloc"></a>Function: <em>gsl_interp_accel *</em> <strong>gsl_interp_accel_alloc</strong> <em>(void)</em></dt>
<dd><a name="index-gsl_005finterp_005faccel"></a>
<p>This function returns a pointer to an accelerator object, which is a
kind of iterator for interpolation lookups.  It tracks the state of
lookups, thus allowing for application of various acceleration
strategies.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005finterp_005faccel_005ffind"></a>Function: <em>size_t</em> <strong>gsl_interp_accel_find</strong> <em>(gsl_interp_accel * <var>a</var>, const double <var>x_array</var>[], size_t <var>size</var>, double <var>x</var>)</em></dt>
<dd><p>This function performs a lookup action on the data array <var>x_array</var>
of size <var>size</var>, using the given accelerator <var>a</var>.  This is how
lookups are performed during evaluation of an interpolation.  The
function returns an index <em>i</em> such that <code>x_array[i] <= x <
x_array[i+1]</code>.  An inline version of this function is used when <code>HAVE_INLINE</code> is defined.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005finterp_005faccel_005freset"></a>Function: <em>int</em> <strong>gsl_interp_accel_reset</strong> <em>(gsl_interp_accel * <var>acc</var>);</em></dt>
<dd><p>This function reinitializes the accelerator object <var>acc</var>.  It
should be used when the cached information is no longer
applicable—for example, when switching to a new dataset.
</p></dd></dl>
<dl>
<dt><a name="index-gsl_005finterp_005faccel_005ffree"></a>Function: <em>void</em> <strong>gsl_interp_accel_free</strong> <em>(gsl_interp_accel* <var>acc</var>)</em></dt>
<dd><p>This function frees the accelerator object <var>acc</var>.
</p></dd></dl>
<hr>
<div class="header">
<p>
Next: <a href="Evaluation-of-Interpolating-Functions.html#Evaluation-of-Interpolating-Functions" accesskey="n" rel="next">Evaluation of Interpolating Functions</a>, Previous: <a href="Interpolation-Types.html#Interpolation-Types" accesskey="p" rel="previous">Interpolation Types</a>, Up: <a href="Interpolation.html#Interpolation" accesskey="u" rel="up">Interpolation</a>   [<a href="Function-Index.html#Function-Index" title="Index" rel="index">Index</a>]</p>
</div>
</body>
</html>
 
     |