## visad
Class LinearNDSet

    java.lang.Object
      visad.ThingImpl
          visad.DataImpl
              visad.Set
                  visad.SimpleSet
                      visad.SampledSet
                          visad.GriddedSet
                              visad.LinearNDSet

All Implemented Interfaces:
  Cloneable, Data, GriddedSetIface, LinearSet, SampledSetIface, Serializable, SetIface, SimpleSetIface, Thing

Direct Known Subclasses:
  IntegerNDSet

public class LinearNDSet
extends GriddedSet
implements LinearSet

LinearNDSet represents a finite set of samples of R^Dimension in a cross product of arithmetic progressions.

The order of the samples is the rasterization of the orders of the 1D components, with the first component increasing fastest. For more detail, see the example in Linear2DSet.java.

See Also:
  Serialized Form

Nested Class Summary

Nested classes inherited from class visad.DataImpl
`DataImpl.Syncher`

Nested classes inherited from class visad.ThingImpl
`ThingImpl.RemotePair`

Field Summary
`(package private) Linear1DSet[]` `L`

Fields inherited from class visad.GriddedSet
`EPS, Lengths, Pos`

Fields inherited from class visad.SampledSet
`Hi, Low, Samples`

Fields inherited from class visad.SimpleSet
`ManifoldDimension`

Fields inherited from class visad.Set
`DomainCoordinateSystem, DomainDimension, hashCode, hashCodeSet, Length, SetErrors, SetUnits`

Fields inherited from class visad.DataImpl
`Type`

Fields inherited from interface visad.Data

`ABS, ACOS, ACOS_DEGREES, ADD, ASIN, ASIN_DEGREES, ATAN, ATAN_DEGREES, ATAN2, ATAN2_DEGREES, CEIL, COS, COS_DEGREES, DEGREES_TO_RADIANS, DEPENDENT, DIVIDE, EXP, FLOOR, INDEPENDENT, INV_ATAN2, INV_ATAN2_DEGREES, INV_DIVIDE, INV_POW, INV_REMAINDER, INV_SUBTRACT, LOG, MAX, MIN, MULTIPLY, NEAREST_NEIGHBOR, NEGATE, NO_ERRORS, NOP, POW, RADIANS_TO_DEGREES, REMAINDER, RINT, ROUND, SIN, SIN_DEGREES, SQRT, SUBTRACT, TAN, TAN_DEGREES, WEIGHTED_AVERAGE`

Constructor Summary
`LinearNDSet(MathType type, double[] firsts, double[] lasts, int[] lengths)` Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), with null errors, CoordinateSystem and Units are defaults from type
`LinearNDSet(MathType type, double[] firsts, double[] lasts, int[] lengths, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)` Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null.
`LinearNDSet(MathType type, double[] firsts, double[] lasts, int[] lengths, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean cache)` Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null.
`LinearNDSet(MathType type, Linear1DSet[] l)` Construct an N-dimensional set as the product of N Linear1DSets, with null errors, CoordinateSystem and Units are defaults from type.
`LinearNDSet(MathType type, Linear1DSet[] l, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)` Construct an N-dimensional set as the product of N Linear1DSets; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null
`LinearNDSet(MathType type, Linear1DSet[] l, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors, boolean cache)` Construct an N-dimensional set as the product of N Linear1DSets; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null

Method Summary
`Object` `cloneButType(MathType type)` Return a clone of this object with a new MathType.
`static LinearSet` `create(MathType type, double[] firsts, double[] lasts, int[] lengths)` General Factory method for creating the proper linear set (Linear1DSet, Linear2DSet, etc.).
`static LinearSet` `create(MathType type, double[] firsts, double[] lasts, int[] lengths, CoordinateSystem coord_sys, Unit[] units, ErrorEstimate[] errors)`
`boolean` `equals(Object set)` Check to see if this LinearNDSet is equal to the Object in question.
`(package private) static Linear1DSet[]` `get_linear1d_array(MathType type, double[] firsts, double[] lasts, int[] lengths, Unit[] units)`
`(package private) static Linear1DSet[]` `get_linear1d_array(MathType type, double first1, double last1, int length1, double first2, double last2, int length2, double first3, double last3, int length3, Unit[] units)`
`(package private) static Linear1DSet[]` `get_linear1d_array(MathType type, double first1, double last1, int length1, double first2, double last2, int length2, Unit[] units)`
`double[]` `getFirsts()` Get the array of first values of each of the arithmetic progressions in this cross product.
`double[]` `getLasts()` Get the array of last values of each of the arithmetic progressions in this cross product.
`Linear1DSet` `getLinear1DComponent(int i)` Get the indexed component.
`float[][]` `getSamples(boolean copy)` Return the array of values in R^N space corresponding to this cross product of arithmetic progressions.
`float[][]` `gridToValue(float[][] grid)` transform an array of non-integer grid coordinates to an array of values in R^DomainDimension
`int` `hashCode()` Returns the hash code for this instance.
`float[][]` `indexToValue(int[] index)` convert an array of 1-D indices to an array of values in R^DomainDimension
`boolean` `isMissing()` Check to see if this is an empty cross-product.
`(package private) static Linear1DSet[]` `linear1d_array_units(Linear1DSet[] sets, Unit[] units)`
`String` `longString(String pre)` Extended version of the toString() method.
`static void` `main(String[] args)` run 'java visad.LinearNDSet' to test the LinearNDSet class
`(package private) static Unit[]` `units_array_linear1d(Linear1DSet[] sets, Unit[] units)`
`float[][]` `valueToGrid(float[][] value)` transform an array of values in R^DomainDimension to an array of non-integer grid coordinates

Methods inherited from class visad.GriddedSet
`create, create, create, create, getLength, getLengths, getNeighbors, getNeighbors, getWedge, makeSpatial, valueToIndex, valueToInterp`

Methods inherited from class visad.SampledSet
`clone, computeRanges, computeRanges, cram_missing, cram_samples, getHi, getLow, getNeighbors, getSamples, init_samples, init_samples, make1DGeometry, make3DGeometry, makePointGeometry, setGeometryArray, setGeometryArray`

Methods inherited from class visad.SimpleSet
`getManifoldDimension, setAnimationSampling`

Methods inherited from class visad.Set

`__getitem__, __len__, addEqualsCache, addNotEqualsCache, adjustType, copyDoubles, copyFloats, doubleToFloat, doubleToIndex, equalUnitAndCS, floatToDouble, getCoordinateSystem, getDimension, getDimension, getDoubles, getDoubles, getLength, getSetErrors, getSetUnits, indexToDouble, longString, make2DGeometry, makeIsoLines, makeIsoSurface, merge1DSets, testEqualsCache, testNotEqualsCache, unary, unitAndCSHashCode`

Methods inherited from class visad.DataImpl

`__add__, __add__, __div__, __div__, __mod__, __mod__, __mul__, __mul__, __neg__, __pow__, __pow__, __radd__, __rdiv__, __rmod__, __rmul__, __rpow__, __rsub__, __sub__, __sub__, abs, abs, acos, acos, acosDegrees, acosDegrees, add, add, adjustSamplingError, asin, asin, asinDegrees, asinDegrees, atan, atan, atan2, atan2, atan2Degrees, atan2Degrees, atanDegrees, atanDegrees, binary, binary, ceil, ceil, changeMathType, computeRanges, computeRanges, computeReferenceRanges, cos, cos, cosDegrees, cosDegrees, dataClone, divide, divide, exp, exp, floor, floor, getType, invertOp, local, log, log, max, max, min, min, multiply, multiply, negate, negate, notifyReferences, pow, pow, remainder, remainder, rint, rint, round, round, setParent, sin, sin, sinDegrees, sinDegrees, sqrt, sqrt, subtract, subtract, tan, tan, tanDegrees, tanDegrees, toString, unary`

Methods inherited from class visad.ThingImpl
`adaptedAddReference, adaptedRemoveReference, addReference, removeReference`

Methods inherited from class java.lang.Object
`finalize, getClass, notify, notifyAll, wait, wait, wait`

Methods inherited from interface visad.SampledSetIface
`getHi, getLow`

Methods inherited from interface visad.SetIface
`cram_missing, doubleToIndex, equalUnitAndCS, getCoordinateSystem, getDimension, getDoubles, getDoubles, getLength, getManifoldDimension, getNeighbors, getSamples, getSetErrors, getSetUnits, indexToDouble, make1DGeometry, make2DGeometry, make3DGeometry, makeIsoLines, makeIsoSurface, makePointGeometry, merge1DSets`

Methods inherited from interface visad.Data

`abs, abs, acos, acos, acosDegrees, acosDegrees, add, add, adjustSamplingError, asin, asin, asinDegrees, asinDegrees, atan, atan, atan2, atan2, atan2Degrees, atan2Degrees, atanDegrees, atanDegrees, binary, binary, ceil, ceil, changeMathType, computeRanges, computeRanges, computeRanges, cos, cos, cosDegrees, cosDegrees, dataClone, divide, divide, exp, exp, floor, floor, getType, local, log, log, longString, max, max, min, min, multiply, multiply, negate, negate, pow, pow, remainder, remainder, rint, rint, round, round, sin, sin, sinDegrees, sinDegrees, sqrt, sqrt, subtract, subtract, tan, tan, tanDegrees, tanDegrees, unary, unary`

Methods inherited from interface visad.Thing
`addReference, removeReference`

Field Detail

### L

    Linear1DSet[] L

Constructor Detail

### LinearNDSet

    public LinearNDSet(MathType type,
                       Linear1DSet[] l)
                throws VisADException

  Construct an N-dimensional set as the product of N Linear1DSets, with null errors, CoordinateSystem and Units are defaults from type.

Parameters:
  `type` - MathType for this LinearNDSet. Must be consistent with MathType-s of sets.
Throws:
  `VisADException` - problem creating VisAD objects.

### LinearNDSet

    public LinearNDSet(MathType type,
                       double[] firsts,
                       double[] lasts,
                       int[] lengths)
                throws VisADException

  Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), with null errors, CoordinateSystem and Units are defaults from type

Parameters:
  `type` - MathType for this LinearNDSet.
  `firsts` - array of first values for each of the arithmetic progressions
  `lasts` - array of last values for each of the arithmetic progressions
  `lengths` - array of number of samples for each of the arithmetic progressions
Throws:
  `VisADException` - problem creating VisAD objects.

### LinearNDSet

    public LinearNDSet(MathType type,
                       double[] firsts,
                       double[] lasts,
                       int[] lengths,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors)
                throws VisADException

  Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null.

Parameters:
  `type` - MathType for this LinearNDSet.
  `firsts` - array of first values for each of the arithmetic progressions
  `lasts` - array of last values for each of the arithmetic progressions
  `lengths` - array of number of samples for each of the arithmetic progressions
  `coord_sys` - CoordinateSystem for this set. May be null, but if not, must be consistent with `type`.
  `units` - Unit-s for the values in `sets`. May be null, but must be convertible with default of `type` if not null.
  `errors` - ErrorEstimate-s for values in `sets`, may be null
Throws:
  `VisADException` - problem creating VisAD objects.

### LinearNDSet

    public LinearNDSet(MathType type,
                       double[] firsts,
                       double[] lasts,
                       int[] lengths,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors,
                       boolean cache)
                throws VisADException

  Construct an N-dimensional set as the product of N arithmetic progressions (lengths[i] samples between firsts[i] and lasts[i]), coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null.

Parameters:
  `type` - MathType for this LinearNDSet.
  `firsts` - array of first values for each of the arithmetic progressions
  `lasts` - array of last values for each of the arithmetic progressions
  `lengths` - array of number of samples for each of the arithmetic progressions
  `coord_sys` - CoordinateSystem for this set. May be null, but if not, must be consistent with `type`.
  `units` - Unit-s for the values in `sets`. May be null, but must be convertible with default of `type` if not null.
  `errors` - ErrorEstimate-s for values in `sets`, may be null
  `cache` - if true, enumerate and cache the samples. This will result in a larger memory footprint, but will reduce the time to return samples from calls to `SampledSet.getSamples()`.
Throws:
  `VisADException` - problem creating VisAD objects.

### LinearNDSet

    public LinearNDSet(MathType type,
                       Linear1DSet[] l,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors)
                throws VisADException

  Construct an N-dimensional set as the product of N Linear1DSets; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null

Parameters:
  `type` - MathType for this LinearNDSet. Must be consistent with MathType-s of sets.
  `coord_sys` - CoordinateSystem for this set. May be null, but if not, must be consistent with `type`.
  `units` - Unit-s for the values in `sets`. May be null, but must be convertible with default of `type` if not null.
  `errors` - ErrorEstimate-s for values in `sets`, may be null
Throws:
  `VisADException` - problem creating VisAD objects.

### LinearNDSet

    public LinearNDSet(MathType type,
                       Linear1DSet[] l,
                       CoordinateSystem coord_sys,
                       Unit[] units,
                       ErrorEstimate[] errors,
                       boolean cache)
                throws VisADException

  Construct an N-dimensional set as the product of N Linear1DSets; coordinate_system and units must be compatible with defaults for type, or may be null; errors may be null

Parameters:
  `type` - MathType for this LinearNDSet. Must be consistent with MathType-s of sets.
  `coord_sys` - CoordinateSystem for this set. May be null, but if not, must be consistent with `type`.
  `units` - Unit-s for the values in `sets`. May be null, but must be convertible with default of `type` if not null.
  `errors` - ErrorEstimate-s for values in `sets`, may be null
  `cache` - if true, enumerate and cache the samples. This will result in a larger memory footprint, but will reduce the time to return samples from calls to `SampledSet.getSamples()`.
Throws:
  `VisADException` - problem creating VisAD objects.

Method Detail

### create

    public static LinearSet create(MathType type,
                                   double[] firsts,
                                   double[] lasts,
                                   int[] lengths)
                            throws VisADException

  General Factory method for creating the proper linear set (Linear1DSet, Linear2DSet, etc.).

  Throws:
    `VisADException`

### create

    public static LinearSet create(MathType type,
                                   double[] firsts,
                                   double[] lasts,
                                   int[] lengths,
                                   CoordinateSystem coord_sys,
                                   Unit[] units,
                                   ErrorEstimate[] errors)
                            throws VisADException

  Throws:
    `VisADException`

### linear1d_array_units

    static Linear1DSet[] linear1d_array_units(Linear1DSet[] sets,
                                              Unit[] units)
                                       throws VisADException

  Throws:
    `VisADException`

### units_array_linear1d

    static Unit[] units_array_linear1d(Linear1DSet[] sets,
                                       Unit[] units)
                                throws VisADException

  Throws:
    `VisADException`

### get_linear1d_array

    static Linear1DSet[] get_linear1d_array(MathType type,
                                            double[] firsts,
                                            double[] lasts,
                                            int[] lengths,
                                            Unit[] units)
                                     throws VisADException

  Throws:
    `VisADException`

### get_linear1d_array

    static Linear1DSet[] get_linear1d_array(MathType type,
                                            double first1,
                                            double last1,
                                            int length1,
                                            double first2,
                                            double last2,
                                            int length2,
                                            Unit[] units)
                                     throws VisADException

  Throws:
    `VisADException`

### get_linear1d_array

    static Linear1DSet[] get_linear1d_array(MathType type,
                                            double first1,
                                            double last1,
                                            int length1,
                                            double first2,
                                            double last2,
                                            int length2,
                                            double first3,
                                            double last3,
                                            int length3,
                                            Unit[] units)
                                     throws VisADException

  Throws:
    `VisADException`

### indexToValue

    public float[][] indexToValue(int[] index)
                           throws VisADException

  convert an array of 1-D indices to an array of values in R^DomainDimension

  Specified by:
    `indexToValue` in interface `SetIface`
  Overrides:
    `indexToValue` in class `GriddedSet`
  Throws:
    `VisADException`

### gridToValue

    public float[][] gridToValue(float[][] grid)
                          throws VisADException

  transform an array of non-integer grid coordinates to an array of values in R^DomainDimension

  Specified by:
    `gridToValue` in interface `GriddedSetIface`
  Overrides:
    `gridToValue` in class `GriddedSet`
  Throws:
    `VisADException`

### valueToGrid

    public float[][] valueToGrid(float[][] value)
                          throws VisADException

  transform an array of values in R^DomainDimension to an array of non-integer grid coordinates

  Specified by:
    `valueToGrid` in interface `GriddedSetIface`
  Overrides:
    `valueToGrid` in class `GriddedSet`
  Throws:
    `VisADException`

### isMissing

    public boolean isMissing()

  Check to see if this is an empty cross-product.

  Specified by:
    `isMissing` in interface `Data`
  Overrides:
    `isMissing` in class `SampledSet`
  Returns:
    always false.

### getFirsts

    public double[] getFirsts()
                       throws VisADException

  Get the array of first values of each of the arithmetic progressions in this cross product.

  Returns:
    array of first values.
  Throws:
    `VisADException`

### getLasts

    public double[] getLasts()
                      throws VisADException

  Get the array of last values of each of the arithmetic progressions in this cross product.

  Returns:
    array of last values.
  Throws:
    `VisADException`

### getSamples

    public float[][] getSamples(boolean copy)
                         throws VisADException

  Return the array of values in R^N space corresponding to this cross product of arithmetic progressions.

  Specified by:
    `getSamples` in interface `SetIface`
  Overrides:
    `getSamples` in class `SampledSet`
  Parameters:
    `copy` - if true, return a copy of the samples.
  Returns:
    array of values in R^N space.
  Throws:
    `VisADException` - problem creating samples.

### equals

    public boolean equals(Object set)

  Check to see if this LinearNDSet is equal to the Object in question.

  Specified by:
    `equals` in interface `SetIface`
  Overrides:
    `equals` in class `GriddedSet`
  Parameters:
    `set` - Object in question
  Returns:
    true if `set` is a LinearNDSet and each of the Linear1DSet-s that make up this cross product are equal.

### hashCode

    public int hashCode()

  Returns the hash code for this instance.

  Overrides:
    `hashCode` in class `GriddedSet`
  Returns:
    The hash code for this instance.

### getLinear1DComponent

    public Linear1DSet getLinear1DComponent(int i)

  Get the indexed component.

  Specified by:
    `getLinear1DComponent` in interface `LinearSet`
  Parameters:
    `i` - Index of component
  Returns:
    The requested component
  Throws:
    `ArrayIndexOutOfBoundsException` - If an invalid index is specified.

### cloneButType

    public Object cloneButType(MathType type)
                        throws VisADException

  Return a clone of this object with a new MathType.

  Specified by:
    `cloneButType` in interface `SetIface`
  Overrides:
    `cloneButType` in class `GriddedSet`
  Parameters:
    `type` - new MathType.
  Returns:
    new LinearNDSet with `type`.
  Throws:
    `VisADException` - if `type` is not compatible with MathType of component Linear1DSets.

### longString

    public String longString(String pre)
                      throws VisADException

  Extended version of the toString() method.

  Specified by:
    `longString` in interface `Data`
  Overrides:
    `longString` in class `GriddedSet`
  Parameters:
    `pre` - prefix for string.
  Returns:
    wordy string describing this LinearNDSet.
  Throws:
    `VisADException`

### main

    public static void main(String[] args)
                     throws VisADException

  run 'java visad.LinearNDSet' to test the LinearNDSet class

  Throws:
    `VisADException`