public int[][] f2e(){
  int fDim=srcEndExclusive - srcStartInclusive;
  int[][] f2e=new int[fDim][];
  for (int i=srcStartInclusive; i < srcEndExclusive; ++i) {
    int localIdx=i - srcStartInclusive;
    int[] f2eI=sentencePair.f2e(i);
    int tgtAlignDim=f2eI.length;
    f2e[localIdx]=new int[tgtAlignDim];
    if (tgtAlignDim > 0) {
      System.arraycopy(f2eI,0,f2e[localIdx],0,f2e[localIdx].length);
      for (int j=0; j < f2e[localIdx].length; ++j) {
        f2e[localIdx][j]-=tgtStartInclusive;
      }
    }
  }
  return f2e;
}

public int [ ] [ ] f2e ( ) { int fDim = srcEndExclusive - srcStartInclusive ; int [ ] [ ] f2e = new int [ fDim ] [ ] ; for ( int i = srcStartInclusive ; i < srcEndExclusive ; ++ i ) { int localIdx = i - srcStartInclusive ; int [ ] f2eI = sentencePair . f2e ( i ) ; int tgtAlignDim = f2eI . length ; f2e [ localIdx ] = new int [ tgtAlignDim ] ; if ( tgtAlignDim > 0 ) { System . arraycopy ( f2eI , 0 , f2e [ localIdx ] , 0 , f2e [ localIdx ] . length ) ; for ( int j = 0 ; j < f2e [ localIdx ] . length ; ++ j ) { f2e [ localIdx ] [ j ] -= tgtStartInclusive ; } } } return f2e ; }
return the rule - internal source - target alignment grid .
