|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectedu.rit.pj.reduction.SharedFloatArray
public class SharedFloatArray
Class SharedFloatArray provides an array reduction variable with elements of type float.
Class SharedFloatArray is multiple thread safe. The methods use lock-free atomic compare-and-set.
Note: Class SharedFloatArray is implemented using class java.util.concurrent.atomic.AtomicIntegerArray. Each float array element is stored as an int whose bit pattern is the same as the float value.
| Constructor Summary | |
|---|---|
SharedFloatArray(float[] array)
Construct a new float array reduction variable whose elements are copied from the given array. |
|
SharedFloatArray(int len)
Construct a new float array reduction variable with the given length. |
|
| Method Summary | |
|---|---|
float |
addAndGet(int i,
float value)
Add the given value to this array reduction variable at the given index and return the new value. |
boolean |
compareAndSet(int i,
float expect,
float update)
Atomically set this array reduction variable at the given index to the given updated value if the current value equals the expected value. |
float |
decrementAndGet(int i)
Subtract one from this array reduction variable at the given index and return the new value. |
float |
get(int i)
Returns this array reduction variable's current value at the given index. |
float |
getAndAdd(int i,
float value)
Add the given value to this array reduction variable at the given index and return the previous value. |
float |
getAndDecrement(int i)
Subtract one from this array reduction variable at the given index and return the previous value. |
float |
getAndIncrement(int i)
Add one to this array reduction variable at the given index and return the previous value. |
float |
getAndSet(int i,
float value)
Set this array reduction variable at the given index to the given value and return the previous value. |
float |
incrementAndGet(int i)
Add one to this array reduction variable at the given index and return the new value. |
int |
length()
Returns this array reduction variable's length. |
void |
reduce(float[] src,
FloatOp op)
Combine this array reduction variable with the given array using the given operation. |
void |
reduce(int dstoff,
float[] src,
int srcoff,
int len,
FloatOp op)
Combine a portion of this array reduction variable with a portion of the given array using the given operation. |
float |
reduce(int i,
float value,
FloatOp op)
Combine this array reduction variable at the given index with the given value using the given operation. |
void |
set(int i,
float value)
Set this array reduction variable at the given index to the given value. |
String |
toString()
Returns a string version of this array reduction variable. |
boolean |
weakCompareAndSet(int i,
float expect,
float update)
Atomically set this array reduction variable at the given index to the given updated value if the current value equals the expected value. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public SharedFloatArray(int len)
len - Length.
NegativeArraySizeException - (unchecked exception) Thrown if len < 0.public SharedFloatArray(float[] array)
array - Array to copy.
NullPointerException - (unchecked exception) Thrown if array is null.| Method Detail |
|---|
public int length()
public float get(int i)
i - Index.
public void set(int i,
float value)
i - Index.value - New value.
public float getAndSet(int i,
float value)
i - Index.value - New value.
public boolean compareAndSet(int i,
float expect,
float update)
i - Index.expect - Expected value.update - Updated value.
public boolean weakCompareAndSet(int i,
float expect,
float update)
i - Index.expect - Expected value.update - Updated value.
public float getAndIncrement(int i)
i - Index.
public float getAndDecrement(int i)
i - Index.
public float getAndAdd(int i,
float value)
i - Index.value - Value to add.
public float incrementAndGet(int i)
i - Index.
public float decrementAndGet(int i)
i - Index.
public float addAndGet(int i,
float value)
i - Index.value - Value to add.
public float reduce(int i,
float value,
FloatOp op)
i - Index.value - Value.op - Binary operation.
public void reduce(float[] src,
FloatOp op)
The reduce() method is multiple thread safe on a per-element basis. Each individual array element is updated atomically, but the array as a whole is not updated atomically.
src - Source array.op - Binary operation.
NullPointerException - (unchecked exception) Thrown if src is null. Thrown if
op is null.
IndexOutOfBoundsException - (unchecked exception) Thrown if any array index would be out of
bounds.
public void reduce(int dstoff,
float[] src,
int srcoff,
int len,
FloatOp op)
The reduce() method is multiple thread safe on a per-element basis. Each individual array element is updated atomically, but the array as a whole is not updated atomically.
dstoff - Index of first element to update in this array.src - Source array.srcoff - Index of first element to update from in the source
array.len - Number of array elements to update.op - Binary operation.
NullPointerException - (unchecked exception) Thrown if src is null. Thrown if
op is null.
IndexOutOfBoundsException - (unchecked exception) Thrown if len < 0. Thrown if any
array index would be out of bounds.public String toString()
toString in class Object
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||