x10.array
Class PeriodicDist

x10.lang.Object
  extended by x10.array.Dist
      extended by x10.array.PeriodicDist
All Implemented Interfaces:
Any

final public class PeriodicDist
extends Dist

A periodic dist decorates a standard X10 dist by implementing periodic boundary conditions, in which elements at each edge of the region are considered to be neighbours, and indexes that fall outside the "home" region in any dimension are wrapped around modulo the size of the region in that dimension.


Field Summary
 
Fields inherited from class x10.array.Dist
region
 
Constructor Summary
PeriodicDist(Dist base)
          Declaration: this(x10.array.Dist): x10.array.PeriodicDist{self.region.rank==base.region.rank}.
 
Method Summary
 PlaceGroup places()
          
 Int numPlaces()
          
 Iterable<Region> regions()
          Declaration: regions(): x10.lang.Iterable[x10.array.Region{self.rank==this(:x10.array.PeriodicDist).region.rank}].
 Region get(Place p)
          Declaration: get(p:x10.lang.Place): x10.array.Region{self.rank==this(:x10.array.PeriodicDist).region.rank}.
 Region operator()(Place p)
          Declaration: operator()(p:x10.lang.Place): x10.array.Region{self.rank==this(:x10.array.PeriodicDist).region.rank}.
 Place operator()(Point pt)
          Declaration: operator()(pt:x10.array.Point{self.rank==this(:x10.array.PeriodicDist).region.rank}): x10.lang.Place.
 Place operator()(Int i0)
          Declaration: operator()(i0:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==1}: x10.lang.Place.
 Place operator()(Int i0, Int i1)
          Declaration: operator()(i0:x10.lang.Int,i1:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==2}: x10.lang.Place.
 Place operator()(Int i0, Int i1, Int i2)
          Declaration: operator()(i0:x10.lang.Int,i1:x10.lang.Int,i2:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==3}: x10.lang.Place.
 Place operator()(Int i0, Int i1, Int i2, Int i3)
          Declaration: operator()(i0:x10.lang.Int,i1:x10.lang.Int,i2:x10.lang.Int,i3:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==4}: x10.lang.Place.
 Int offset(Point pt)
          Declaration: offset(pt:x10.array.Point{self.rank==this(:x10.array.PeriodicDist).region.rank}): x10.lang.Int.
 Int offset(Int i0)
          Declaration: offset(i0:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==1}: x10.lang.Int.
 Int offset(Int i0, Int i1)
          Declaration: offset(i0:x10.lang.Int,i1:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==2}: x10.lang.Int.
 Int offset(Int i0, Int i1, Int i2)
          Declaration: offset(i0:x10.lang.Int,i1:x10.lang.Int,i2:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==3}: x10.lang.Int.
 Int offset(Int i0, Int i1, Int i2, Int i3)
          Declaration: offset(i0:x10.lang.Int,i1:x10.lang.Int,i2:x10.lang.Int,i3:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==4}: x10.lang.Int.
 Int maxOffset()
          
 Dist restriction(Region r)
          Declaration: restriction(r:x10.array.Region{self.rank==this(:x10.array.PeriodicDist).region.rank}): x10.array.Dist{self.region.rank==this(:x10.array.PeriodicDist).region.rank}.
 Dist restriction(Place p)
          Declaration: restriction(p:x10.lang.Place): x10.array.Dist{self.region.rank==this(:x10.array.PeriodicDist).region.rank}.
 String toString()
          
 PeriodicDist x10$array$PeriodicDist$$x10$array$PeriodicDist$this()
          Declaration: x10$array$PeriodicDist$$x10$array$PeriodicDist$this(): x10.array.PeriodicDist{self==this(:x10.array.PeriodicDist)}. A periodic dist decorates a standard X10 dist by implementing periodic boundary conditions, in which elements at each edge of the region are considered to be neighbours, and indexes that fall outside the "home" region in any dimension are wrapped around modulo the size of the region in that dimension.
 
Methods inherited from class x10.array.Dist
rank, makeUnique, makeConstant, make, makeCyclic, makeBlock, makeBlockBlock, makeBlock, makeBlockCyclic, makeUnique, makeConstant, makeCyclic, makeBlock, makeBlockCyclic, places, numPlaces, regions, get, operator(), operator(), operator(), operator(), operator(), operator(), offset, offset, offset, offset, offset, maxOffset, iterator, restriction, isSubdistribution, equals, restriction, contains, operator|, operator|, toString, raiseBoundsError, raiseBoundsError, raiseBoundsError, raiseBoundsError, raiseBoundsError, raisePlaceError, raisePlaceError, raisePlaceError, raisePlaceError, raisePlaceError, x10$array$Dist$$x10$array$Dist$this
 
Methods inherited from class x10.lang.Object
equals, hashCode, toString, typeName, x10$lang$Object$$x10$lang$Object$this
 
Methods inherited from interface x10.lang. Fun_0_1
operator()
 
Methods inherited from interface x10.lang.Iterable
iterator
 
Methods inherited from interface x10.lang.Any
toString, typeName, equals, hashCode
 

Constructor Detail

PeriodicDist

public PeriodicDist(Dist base)
Declaration: this(x10.array.Dist): x10.array.PeriodicDist{self.region.rank==base.region.rank}.

Method Detail

places

public PlaceGroup places()


numPlaces

public Int numPlaces()


regions

public Iterable<Region> regions()
Declaration: regions(): x10.lang.Iterable[x10.array.Region{self.rank==this(:x10.array.PeriodicDist).region.rank}].


get

public Region get(Place p)
Declaration: get(p:x10.lang.Place): x10.array.Region{self.rank==this(:x10.array.PeriodicDist).region.rank}.


operator()

public Region operator()(Place p)
Declaration: operator()(p:x10.lang.Place): x10.array.Region{self.rank==this(:x10.array.PeriodicDist).region.rank}.


operator()

public Place operator()(Point pt)
Declaration: operator()(pt:x10.array.Point{self.rank==this(:x10.array.PeriodicDist).region.rank}): x10.lang.Place.


operator()

public Place operator()(Int i0)
Declaration: operator()(i0:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==1}: x10.lang.Place.


operator()

public Place operator()(Int i0,
                        Int i1)
Declaration: operator()(i0:x10.lang.Int,i1:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==2}: x10.lang.Place.


operator()

public Place operator()(Int i0,
                        Int i1,
                        Int i2)
Declaration: operator()(i0:x10.lang.Int,i1:x10.lang.Int,i2:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==3}: x10.lang.Place.


operator()

public Place operator()(Int i0,
                        Int i1,
                        Int i2,
                        Int i3)
Declaration: operator()(i0:x10.lang.Int,i1:x10.lang.Int,i2:x10.lang.Int,i3:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==4}: x10.lang.Place.


offset

public Int offset(Point pt)
Declaration: offset(pt:x10.array.Point{self.rank==this(:x10.array.PeriodicDist).region.rank}): x10.lang.Int.


offset

public Int offset(Int i0)
Declaration: offset(i0:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==1}: x10.lang.Int.


offset

public Int offset(Int i0,
                  Int i1)
Declaration: offset(i0:x10.lang.Int,i1:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==2}: x10.lang.Int.


offset

public Int offset(Int i0,
                  Int i1,
                  Int i2)
Declaration: offset(i0:x10.lang.Int,i1:x10.lang.Int,i2:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==3}: x10.lang.Int.


offset

public Int offset(Int i0,
                  Int i1,
                  Int i2,
                  Int i3)
Declaration: offset(i0:x10.lang.Int,i1:x10.lang.Int,i2:x10.lang.Int,i3:x10.lang.Int){this(:x10.array.PeriodicDist).region.rank==4}: x10.lang.Int.


maxOffset

public Int maxOffset()


restriction

public Dist restriction(Region r)
Declaration: restriction(r:x10.array.Region{self.rank==this(:x10.array.PeriodicDist).region.rank}): x10.array.Dist{self.region.rank==this(:x10.array.PeriodicDist).region.rank}.


restriction

public Dist restriction(Place p)
Declaration: restriction(p:x10.lang.Place): x10.array.Dist{self.region.rank==this(:x10.array.PeriodicDist).region.rank}.


toString

public String toString()


x10$array$PeriodicDist$$x10$array$PeriodicDist$this

public final PeriodicDist x10$array$PeriodicDist$$x10$array$PeriodicDist$this()
Declaration: x10$array$PeriodicDist$$x10$array$PeriodicDist$this(): x10.array.PeriodicDist{self==this(:x10.array.PeriodicDist)}.
A periodic dist decorates a standard X10 dist by implementing
periodic boundary conditions, in which elements at each edge of
the region are considered to be neighbours, and indexes that fall
outside the "home" region in any dimension are wrapped around modulo
the size of the region in that dimension.