@Override public void localize( final double[] position ) { for ( int d = 0; d < sd; ++d ) position[ d ] = sliceAccess.getLongPosition( d ); position[ sd ] = slice; }
@Override public void localize( final double[] position ) { for ( int d = 0; d < sd; ++d ) position[ d ] = sliceAccesses[ 0 ].getLongPosition( d ); position[ sd ] = slice; }
@Override public long getLongPosition( final int d ) { assert d < n; final int td = sourceComponent[ d ]; final long v = s.getLongPosition( td ) - translation[ td ]; return sourceInv[ d ] ? -v : v; }
@Override public long getLongPosition( final int d ) { assert d < n; return s.getLongPosition( sourceComponent[ d ] ); }
@Override public long getLongPosition( final int d ) { return randomAccess.getLongPosition( d ); } }
@Override public void localize( final long[] position ) { for ( int d = 0; d < sd; ++d ) position[ d ] = sliceAccesses[ 0 ].getLongPosition( d ); position[ sd ] = slice; }
@Override protected void fillWeights() { final double w0 = position[ 0 ] - target.getLongPosition( 0 ); weights[ 0 ] = 1.0d - w0; weights[ 1 ] = w0; }
@Override protected void fillWeights() { final double w0 = position[ 0 ] - target.getLongPosition( 0 ); final double w0Inv = 1.0d - w0; final double w1 = position[ 1 ] - target.getLongPosition( 1 ); final double w1Inv = 1.0d - w1; weights[ 0 ] = w0Inv * w1Inv; weights[ 1 ] = w0 * w1Inv; weights[ 2 ] = w0Inv * w1; weights[ 3 ] = w0 * w1; }
@Override public long getLongPosition( final int d ) { return randomAccess.getLongPosition( d ); } }
@Override public long getLongPosition( final int d ) { assert d < n; final int td = sourceComponent[ d ]; final long v = s.getLongPosition( td ) - translation[ td ]; return sourceInv[ d ] ? -v : v; }
@Override public long getLongPosition( final int d ) { assert d < n; return s.getLongPosition( sourceComponent[ d ] ); }
@Override public void localize( final long[] position ) { assert position.length >= n; for ( int d = 0; d < n; ++d ) position[ d ] = source.getLongPosition( d ) + ( int ) offset[ d ]; }
@Override protected void fillWeights() { final double w0 = position[ 0 ] - target.getLongPosition( 0 ); weights[ 0 ] = 1.0d - w0; weights[ 1 ] = w0; }
/** Gets this DrawingHelper's current drawing position. */ public void getPosition(final long[] position) { for (int i = 0; i < accessor.numDimensions(); i++) position[i] = accessor.getLongPosition(i); }
final protected void accumulate( final int d ) { for ( int e = d; e >= 0; --e ) products[ e ] = lookUpLanczos( position[ e ] - target.getLongPosition( e ) ) * products[ e + 1 ]; }
@Override public void setZero() { sourceAccess.setPosition( 0, d ); while ( sourceAccess.getLongPosition( d ) < length ) { sourceAccess.get().setZero(); sourceAccess.fwd( d ); } }
@Override public void mul( final double c ) { sourceAccess.setPosition( 0, d ); while ( sourceAccess.getLongPosition( d ) < length ) { sourceAccess.get().mul( c ); sourceAccess.fwd( d ); } }
@Override public void add( final C c ) { sourceAccess.setPosition( 0, d ); c.sourceAccess.setPosition( 0, d ); while ( sourceAccess.getLongPosition( d ) < length ) { sourceAccess.get().add( c.sourceAccess.get() ); sourceAccess.fwd( d ); c.sourceAccess.fwd( d ); } }
@Override public void mul( final C c ) { sourceAccess.setPosition( 0, d ); c.sourceAccess.setPosition( 0, d ); while ( sourceAccess.getLongPosition( d ) < length ) { sourceAccess.get().mul( c.sourceAccess.get() ); sourceAccess.fwd( d ); c.sourceAccess.fwd( d ); } }
@Override public void div( final C c ) { sourceAccess.setPosition( 0, d ); c.sourceAccess.setPosition( 0, d ); while ( sourceAccess.getLongPosition( d ) < length ) { sourceAccess.get().div( c.sourceAccess.get() ); sourceAccess.fwd( d ); c.sourceAccess.fwd( d ); } }