public double[][] extractMainSetJacobian(final ODEState state){
  final double[] p=state.getSecondaryState(index);
  final double[][] dYdY0=new double[stateDim][stateDim];
  int j=0;
  for (int i=0; i < stateDim; i++) {
    System.arraycopy(p,j,dYdY0[i],0,stateDim);
    j+=stateDim;
  }
  return dYdY0;
}

public double [ ] [ ] extractMainSetJacobian ( final ODEState state ) { final double [ ] p = state . getSecondaryState ( index ) ; final double [ ] [ ] dYdY0 = new double [ stateDim ] [ stateDim ] ; int j = 0 ; for ( int i = 0 ; i < stateDim ; i ++ ) { System . arraycopy ( p , j , dYdY0 [ i ] , 0 , stateDim ) ; j += stateDim ; } return dYdY0 ; }
extract the jacobian matrix with respect to state .
