comparison libs/commons-math-2.1/docs/apidocs/src-html/org/apache/commons/math/util/DoubleArray.html @ 13:cbf34dd4d7e6

commons-math-2.1 added
author dwinter
date Tue, 04 Jan 2011 10:02:07 +0100
parents
children
comparison
equal deleted inserted replaced
12:970d26a94fb7 13:cbf34dd4d7e6
1 <HTML>
2 <BODY BGCOLOR="white">
3 <PRE>
4 <FONT color="green">001</FONT> /*<a name="line.1"></a>
5 <FONT color="green">002</FONT> * Licensed to the Apache Software Foundation (ASF) under one or more<a name="line.2"></a>
6 <FONT color="green">003</FONT> * contributor license agreements. See the NOTICE file distributed with<a name="line.3"></a>
7 <FONT color="green">004</FONT> * this work for additional information regarding copyright ownership.<a name="line.4"></a>
8 <FONT color="green">005</FONT> * The ASF licenses this file to You under the Apache License, Version 2.0<a name="line.5"></a>
9 <FONT color="green">006</FONT> * (the "License"); you may not use this file except in compliance with<a name="line.6"></a>
10 <FONT color="green">007</FONT> * the License. You may obtain a copy of the License at<a name="line.7"></a>
11 <FONT color="green">008</FONT> *<a name="line.8"></a>
12 <FONT color="green">009</FONT> * http://www.apache.org/licenses/LICENSE-2.0<a name="line.9"></a>
13 <FONT color="green">010</FONT> *<a name="line.10"></a>
14 <FONT color="green">011</FONT> * Unless required by applicable law or agreed to in writing, software<a name="line.11"></a>
15 <FONT color="green">012</FONT> * distributed under the License is distributed on an "AS IS" BASIS,<a name="line.12"></a>
16 <FONT color="green">013</FONT> * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.<a name="line.13"></a>
17 <FONT color="green">014</FONT> * See the License for the specific language governing permissions and<a name="line.14"></a>
18 <FONT color="green">015</FONT> * limitations under the License.<a name="line.15"></a>
19 <FONT color="green">016</FONT> */<a name="line.16"></a>
20 <FONT color="green">017</FONT> package org.apache.commons.math.util;<a name="line.17"></a>
21 <FONT color="green">018</FONT> <a name="line.18"></a>
22 <FONT color="green">019</FONT> <a name="line.19"></a>
23 <FONT color="green">020</FONT> /**<a name="line.20"></a>
24 <FONT color="green">021</FONT> * Provides a standard interface for double arrays. Allows different<a name="line.21"></a>
25 <FONT color="green">022</FONT> * array implementations to support various storage mechanisms<a name="line.22"></a>
26 <FONT color="green">023</FONT> * such as automatic expansion, contraction, and array "rolling".<a name="line.23"></a>
27 <FONT color="green">024</FONT> *<a name="line.24"></a>
28 <FONT color="green">025</FONT> * @version $Revision: 811685 $ $Date: 2009-09-05 13:36:48 -0400 (Sat, 05 Sep 2009) $<a name="line.25"></a>
29 <FONT color="green">026</FONT> */<a name="line.26"></a>
30 <FONT color="green">027</FONT> public interface DoubleArray {<a name="line.27"></a>
31 <FONT color="green">028</FONT> <a name="line.28"></a>
32 <FONT color="green">029</FONT> /**<a name="line.29"></a>
33 <FONT color="green">030</FONT> * Returns the number of elements currently in the array. Please note<a name="line.30"></a>
34 <FONT color="green">031</FONT> * that this may be different from the length of the internal storage array.<a name="line.31"></a>
35 <FONT color="green">032</FONT> *<a name="line.32"></a>
36 <FONT color="green">033</FONT> * @return number of elements<a name="line.33"></a>
37 <FONT color="green">034</FONT> */<a name="line.34"></a>
38 <FONT color="green">035</FONT> int getNumElements();<a name="line.35"></a>
39 <FONT color="green">036</FONT> <a name="line.36"></a>
40 <FONT color="green">037</FONT> /**<a name="line.37"></a>
41 <FONT color="green">038</FONT> * Returns the element at the specified index. Note that if an<a name="line.38"></a>
42 <FONT color="green">039</FONT> * out of bounds index is supplied a ArrayIndexOutOfBoundsException<a name="line.39"></a>
43 <FONT color="green">040</FONT> * will be thrown.<a name="line.40"></a>
44 <FONT color="green">041</FONT> *<a name="line.41"></a>
45 <FONT color="green">042</FONT> * @param index index to fetch a value from<a name="line.42"></a>
46 <FONT color="green">043</FONT> * @return value stored at the specified index<a name="line.43"></a>
47 <FONT color="green">044</FONT> * @throws ArrayIndexOutOfBoundsException if &lt;code&gt;index&lt;/code&gt; is less than<a name="line.44"></a>
48 <FONT color="green">045</FONT> * zero or is greater than &lt;code&gt;getNumElements() - 1&lt;/code&gt;.<a name="line.45"></a>
49 <FONT color="green">046</FONT> */<a name="line.46"></a>
50 <FONT color="green">047</FONT> double getElement(int index);<a name="line.47"></a>
51 <FONT color="green">048</FONT> <a name="line.48"></a>
52 <FONT color="green">049</FONT> /**<a name="line.49"></a>
53 <FONT color="green">050</FONT> * Sets the element at the specified index. If the specified index is greater than<a name="line.50"></a>
54 <FONT color="green">051</FONT> * &lt;code&gt;getNumElements() - 1&lt;/code&gt;, the &lt;code&gt;numElements&lt;/code&gt; property<a name="line.51"></a>
55 <FONT color="green">052</FONT> * is increased to &lt;code&gt;index +1&lt;/code&gt; and additional storage is allocated<a name="line.52"></a>
56 <FONT color="green">053</FONT> * (if necessary) for the new element and all (uninitialized) elements<a name="line.53"></a>
57 <FONT color="green">054</FONT> * between the new element and the previous end of the array).<a name="line.54"></a>
58 <FONT color="green">055</FONT> *<a name="line.55"></a>
59 <FONT color="green">056</FONT> * @param index index to store a value in<a name="line.56"></a>
60 <FONT color="green">057</FONT> * @param value value to store at the specified index<a name="line.57"></a>
61 <FONT color="green">058</FONT> * @throws ArrayIndexOutOfBoundsException if &lt;code&gt;index&lt;/code&gt; is less than<a name="line.58"></a>
62 <FONT color="green">059</FONT> * zero.<a name="line.59"></a>
63 <FONT color="green">060</FONT> */<a name="line.60"></a>
64 <FONT color="green">061</FONT> void setElement(int index, double value);<a name="line.61"></a>
65 <FONT color="green">062</FONT> <a name="line.62"></a>
66 <FONT color="green">063</FONT> /**<a name="line.63"></a>
67 <FONT color="green">064</FONT> * Adds an element to the end of this expandable array<a name="line.64"></a>
68 <FONT color="green">065</FONT> *<a name="line.65"></a>
69 <FONT color="green">066</FONT> * @param value to be added to end of array<a name="line.66"></a>
70 <FONT color="green">067</FONT> */<a name="line.67"></a>
71 <FONT color="green">068</FONT> void addElement(double value);<a name="line.68"></a>
72 <FONT color="green">069</FONT> <a name="line.69"></a>
73 <FONT color="green">070</FONT> /**<a name="line.70"></a>
74 <FONT color="green">071</FONT> * &lt;p&gt;<a name="line.71"></a>
75 <FONT color="green">072</FONT> * Adds an element to the end of the array and removes the first<a name="line.72"></a>
76 <FONT color="green">073</FONT> * element in the array. Returns the discarded first element.<a name="line.73"></a>
77 <FONT color="green">074</FONT> * The effect is similar to a push operation in a FIFO queue.<a name="line.74"></a>
78 <FONT color="green">075</FONT> * &lt;/p&gt;<a name="line.75"></a>
79 <FONT color="green">076</FONT> * &lt;p&gt;<a name="line.76"></a>
80 <FONT color="green">077</FONT> * Example: If the array contains the elements 1, 2, 3, 4 (in that order)<a name="line.77"></a>
81 <FONT color="green">078</FONT> * and addElementRolling(5) is invoked, the result is an array containing<a name="line.78"></a>
82 <FONT color="green">079</FONT> * the entries 2, 3, 4, 5 and the value returned is 1.<a name="line.79"></a>
83 <FONT color="green">080</FONT> * &lt;/p&gt;<a name="line.80"></a>
84 <FONT color="green">081</FONT> *<a name="line.81"></a>
85 <FONT color="green">082</FONT> * @param value the value to be added to the array<a name="line.82"></a>
86 <FONT color="green">083</FONT> * @return the value which has been discarded or "pushed" out of the array<a name="line.83"></a>
87 <FONT color="green">084</FONT> * by this rolling insert<a name="line.84"></a>
88 <FONT color="green">085</FONT> */<a name="line.85"></a>
89 <FONT color="green">086</FONT> double addElementRolling(double value);<a name="line.86"></a>
90 <FONT color="green">087</FONT> <a name="line.87"></a>
91 <FONT color="green">088</FONT> /**<a name="line.88"></a>
92 <FONT color="green">089</FONT> * Returns a double[] array containing the elements of this<a name="line.89"></a>
93 <FONT color="green">090</FONT> * &lt;code&gt;DoubleArray&lt;/code&gt;. If the underlying implementation is<a name="line.90"></a>
94 <FONT color="green">091</FONT> * array-based, this method should always return a copy, rather than a<a name="line.91"></a>
95 <FONT color="green">092</FONT> * reference to the underlying array so that changes made to the returned<a name="line.92"></a>
96 <FONT color="green">093</FONT> * array have no effect on the &lt;code&gt;DoubleArray.&lt;/code&gt;<a name="line.93"></a>
97 <FONT color="green">094</FONT> *<a name="line.94"></a>
98 <FONT color="green">095</FONT> * @return all elements added to the array<a name="line.95"></a>
99 <FONT color="green">096</FONT> */<a name="line.96"></a>
100 <FONT color="green">097</FONT> double[] getElements();<a name="line.97"></a>
101 <FONT color="green">098</FONT> <a name="line.98"></a>
102 <FONT color="green">099</FONT> /**<a name="line.99"></a>
103 <FONT color="green">100</FONT> * Clear the double array<a name="line.100"></a>
104 <FONT color="green">101</FONT> */<a name="line.101"></a>
105 <FONT color="green">102</FONT> void clear();<a name="line.102"></a>
106 <FONT color="green">103</FONT> <a name="line.103"></a>
107 <FONT color="green">104</FONT> }<a name="line.104"></a>
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168 </PRE>
169 </BODY>
170 </HTML>